-
什么是numpy
NumPy是一个功能强大的Python库,主要用于对多维数组执行计算。NumPy这个词来源于两个单词-- Numerical和Python。NumPy提供了大量的库函数和操作,可以帮助程序员轻松地进行数值计算。 -
numpy数组基础
运用numpy生成各种数组
import numpy as np
a = np.array([0, 1, 2, 3, 4])
b = np.array((0, 1, 2, 3, 4))
c = np.arange(5)
d = np.linspace(0, 2*np.pi, 5)
a2 = np.array([[11, 12, 13, 14, 15],
[16, 17, 18, 19, 20],
[21, 22, 23, 24, 25],
[26, 27, 28 ,29, 30],
[31, 32, 33, 34, 35]])
print(a2[:2,:2])
数组性质查看
print(a2)
print(type(a2))
print(a2.dtype)
print(a2.size)
print(a2.shape)
print(a2.itemsize)#a每一项所占的字节数
print(a2.ndim)
print(a2.nbytes)#a所有数据消耗掉的字节数
数组运算
a = np.arange(25)
a = a.reshape((5, 5))
b = np.array([10, 62, 1, 14, 2, 56, 79, 2, 1, 45,
4, 92, 5, 55, 63, 43, 35, 6, 53, 24,
56, 3, 56, 44, 78])
b = b.reshape((5,5))
print(a + b)
print(a - b)
print(a * b)#这个是矩阵中每个元素分别相乘
print(a / b)
print(a ** 2)
print(a < b) #返回的是布尔数组
print(a > b)
print(a.dot(b))#这个相当于是矩阵的乘法
print(a.max())#以下是一些特殊运算
print(a.min())
print(a.sum())
print(a.cumsum())
布尔索引
a = np.linspace(0, 2 * np.pi, 50)
b = np.sin(a)
plt.plot(a,b)
mask = b >= 0
plt.plot(a[mask], b[mask], 'bo')#满足mask的部分画出蓝色圆点
plt.show()
布尔索引2
a = np.linspace(0, 2 * np.pi, 50)
b = np.sin(a)
plt.plot(a,b)
mask = (b >= 0) & (a <= np.pi / 2)
plt.plot(a[mask], b[mask], 'go')#满足mask的部分都画出绿色圆点
plt.show()
where函数的用法
where() 函数是另外一个根据条件返回数组中的值的有效方法。只需要把条件传递给它,它就会返回一个使得条件为真的位置的列表。
a = np.arange(0, 100, 10)
b = np.where(a < 50)
c = np.where(a >= 50)[0]
print(b) # >>>(array([0, 1, 2, 3, 4]),)
print(c) # >>>[5 6 7 8 9]输出结果不同是因为[0]指令取了第一行