1 numpy库
numpy为python数学计算库,里面的数组类提供大量便捷的数组和矩阵运算方法
创建numpy数组:
import numpy as np
x = np.array([1.0, 2.0, 3.0])
创建二维数组:
import numpy as np
a = np.array([[1, 2], [3, 4]])
a.shape # output: (2, 2)
a.dtype # output: dtype('int64')
shape:查看二维数组形状
dtype:查看数组数据类型
数学上一步将一维数组称为向量,二维数组称为矩阵,三维及以上数组称为张量(tensor)
numpy数组运算:
import numpy as np
x = np.array([1.0, 2.0, 3.0])
y = np.array([2.0, 4.0, 6.0])
x + y # output: [3, 6, 9]
x * y # output: [2, 8, 18]
当两个数组长度和维数相同时,数组可以直接加减乘除。这一计算叫做element-wise运算
numpy数组广播:
在numpy里面形状不同的数组也可以计算,数组和常数也可以计算,这依靠numpy里自动的广播功能将数组扩充实现。广播本质上是将维数较低的数组自动扩充为高维数数组然后进行element-wise计算
import numpy as np
a = np.array([[1, 2], [3, 4]])
a * 10 # output: [[10, 20], [30, 40]]
b = np.array([10, 20])
a * b # output: [[10, 40], [30, 80]]
访问元素:
元素索引从0开始
import numpy as np
a = np.array([[1, 2], [3, 4], [5, 6]])
a[0] # [1, 2]
a[1][0] # 3
for row in a: # foreach
print(row)
a = a.flatten() # [1, 2, 3, 4, 5, 6]
a[np.array([0, 2, 4])] # 1, 3, 5
a > 3 # [False, False, False, True, True, True]
a[a > 3] # [4, 5, 6]
flatten: 把数组转化为一维数组
a[np.array([0, 2, 4])]获取a第0, 2, 4位置的元素
a > 3 对数组进行比较运算会对每个元素依次进行比较,返回一个boolean数组,其中True和False代表各个元素比较结果
a[a > 3]返回a里面所以大于3元素组成的子列表
2 matplotlib库
绘制sin函数
import numpy as np
import matplotlib.pyplot as plt
# generate data
x = np.arange(0, 6, 0.1) # generate numbers from 0 to 6 at 0.1 interval
y = np.sin(x) # create sin function for all points in x
# plot the graph
plt.plot(x, y) # plot graph
plt.show() # display graph
np.arrange(start, end, step):以step值为单位,生成从start到end的数据
plt.plot(x, y) 绘图
plt.show() 显示绘图结果
生成sin和cos并使用pyplot添加标签
import numpy as np
import matplotlib.pyplot as plt
# generate data
x = np.arange(0, 6, 0.1) # generate numbers from 0 to 6 at 0.1 interval
y1 = np.sin(x) # create sin function for all points in x
y2 = np.cos(x)
# plot the graph
plt.plot(x, y1, label = "sin") # plot graph
plt.plot(x, y2, linestyle = "--", label = "cos")
plt.xlabel("x") # label on x-axis
plt.ylabel("y") # label on y-axis
plt.title("sin & cos") # title
plt.legend()
plt.show() # display graph
读取图片
import matplotlib.pyplot as plt
from matplotlib.image import imread
img = imread("lena.png")
plt.imshow(img)
plt.show()
plt.imread(“path”): 读取图片,里面传入图片文件路径