标签 python 下的文章

道在屎溺。作为《深度学习入门》的阅读笔记,本文简略概述python

算数计算

print(1 - 2)
print(4 * 5)
print(7 / 5)
print(3 ** 2) # 乘方
-1
20
1.4
9

数据类型和Type函数

type(10)
int



type(2.718)
float



type("hello")
str



type(True)
bool


变量

x = 100
y = 3.14
print(x * y)
type(x * y)
# 是注释标识
314.0

float


列表

a = [1,2,3,4,5]
print(a)
len(a)
[1, 2, 3, 4, 5]

5



print(a[4])
a[4]=99
print(a)
5
[1, 2, 3, 4, 99]


# 切片
a[0:2] # 获取索引为0到2(不包括2!)的元素
[1, 2]



a[1:]  # 获取从索引为1的元素到最后一个元
[2, 3, 4, 99]



a[:3]  # 获取从第一个元素到索引为3(不包括3!)的元素
[1, 2, 3]



a[:-1] # 获取从第一个元素到最后一个元素的前一个元素之间的元素
[1, 2, 3, 4]



a[:-2] # 获取从第一个元素到最后一个元素的前二个元素之间的元素
[1, 2, 3]


字典

me = {'height':180} # 生成字典
print(me)
{'height': 180}


me['height']=70
print(me['height'])
70

布尔型

hungry = True
sleepy = False
type(hungry)
bool



not hungry
False



hungry and sleepy
False



hungry or sleepy
True


if语句

if hungry:
    print('hungry')
elif sleepy:
    print('sleepy')
else:
    print('not hungry')
hungry

for 语句

for i in [1,2,3]:
    print(i)
1
2
3

函数

def hello(object):
    print("Hello " + object + "!")
hello("cat!")
Hello cat!!

class Man:
    def __init__(self, name):
        self.name = name
        print("Initialized!")
    def hello(self):
        print("Hello " + self.name + "!")
    def goodbye(self):
        print("Good-bye " + self.name + "!")

m = Man("David")
m.hello()
m.goodbye()
Initialized!
Hello David!
Good-bye David!

Numpy 速成

import numpy as np

x = np.array([1.,2.,3.])
print(x)
type(x)
y = np.array([2.0, 4.0, 6.0])
[1. 2. 3.]

以下是对应元素的运算,如果元素个数不同,程序就会报错,所以元素个数保持一致非常重要

print(x+y)
print(x-y)
print(x/y)
print(x*y)
[3. 6. 9.]
[-1. -2. -3.]
[0.5 0.5 0.5]
[ 2.  8. 18.]

NumPy数组不仅可以进行element-wise运算,也可以和单一的数值(标量)组合起来进行运算

x/2.0
array([0.5, 1. , 1.5])


Numpy的N维数组

A = np.array([[1, 2], [3, 4]])
B = np.array([[3, 0],[0, 6]])
print(A)
[[1 2]
 [3 4]]


A.shape
(2, 2)



A.dtype
dtype('int32')



print(A+B)
[[ 4  2]
 [ 3 10]]


print(A*B)
[[ 3  0]
 [ 0 24]]


print(A*10)
[[10 20]
 [30 40]]

广播

A = np.array([[1, 2], [3, 4]])
B = np.array([10, 20])
A * B
array([[10, 40],
       [30, 80]])


访问元素

X = np.array([[51, 55], [14, 19], [0, 4]])
X[0][1]
55



X[0]
array([51, 55])



for row in X:
    print(row)
[51 55]
[14 19]
[0 4]


X = X.flatten()
print(X)
[51 55 14 19  0  4]

还有一些特殊的访问方法:

X[np.array([0, 2, 4])]
array([51, 14,  0])



X > 15
array([ True,  True, False,  True, False, False])



X[X>15]
array([51, 55, 19])


Matplolib 速成

import matplotlib.pyplot as plt
 # 生成数据
x = np.arange(0, 6, 0.1) # 以0.1为单位,生成0到6的数据
y1 = np.sin(x)
y2 = np.cos(x)
# 绘制图形
plt.plot(x, y1)
plt.show()

test_python_59_0.png

plt.plot(x, y1, label="sin")
plt.plot(x, y2, linestyle = "--", label="cos") # 用虚线绘制
plt.xlabel("x") # x轴标签
plt.ylabel("y") # y轴标签
plt.title('sin & cos') # 标题
plt.legend() #图例
plt.show()


test_python_60_0.png

from matplotlib.image import imread
img = imread('../dataset/lena.png') # 读入图像(设定合适的路径!)
plt.imshow(img)
plt.show()


test_python_61_0.png