numpy广播
numpy广播应该是它最重要的一个属性,下面通过一个例子直观地感受一下。
>>> a = np.array([[1,2],[3,4]])
>>> b = np.array([[5,6],[7,8]])
>>> a + b
array([[ 6, 8],
[10, 12]])
>>> a - b
array([[-4, -4],
[-4, -4]])
>>> a * b
array([[ 5, 12],
[21, 32]])
>>> a / b
array([[ 0.2 , 0.33333333],
[ 0.42857143, 0.5 ]])
维度不同的广播
>>> a = np.array([[1,2,3],[4,5,6]])
>>> b = np.array([7,8,9])
>>> a + b
array([[ 8, 10, 12],
[11, 13, 15]])
>>> a - b
array([[-6, -6, -6],
[-3, -3, -3]])
>>> a * b
array([[ 7, 16, 27],
[28, 40, 54]])
>>> a / b
array([[ 0.14285714, 0.25 , 0.33333333],
[ 0.57142857, 0.625 , 0.66666667]])
numpy常用函数
numpy函数的使用都是通过np.function实现的。函数也是针对每一个元素进行运算。
三角函数
>>> a = np.array([0,30,60,90])
>>> np.sin(a * np.pi / 180)
array([ 0. , 0.5 , 0.8660254, 1. ])
>>> np.cos(a * np.pi / 180)
array([ 1.00000000e+00, 8.66025404e-01, 5.00000000e-01,
6.12323400e-17])
>>> np.tan(a * np.pi / 180)
array([ 0.00000000e+00, 5.77350269e-01, 1.73205081e+00,
1.63312394e+16])
上下取整函数
>>> a = np.array([1.2,3.5,6.7])
#向下取整
>>> np.floor(a)
array([ 1., 3., 6.])
#向上取整
>>> np.ceil(a)
array([ 2., 4., 7.])
统计函数
#中位数
>>> a = np.array([[1,2,3],[4,5,6]])
>>> np.median(a)
3.5
#均值
>>> np.mean(a)
3.5
#标准差
>>> np.std(a)
1.707825127659933
#方差
>>> np.var(a)
2.9166666666666665
排序、查找、计数函数
>>> a = np.array([[11,2,43],[34,15,46]])
>>> np.sort(a,axis = 1)
array([[ 2, 11, 43],
[15, 34, 46]])
#返回指定轴上的最大最小索引
>>> np.argmax(a,axis = 1)
array([2, 2])
>>> np.argmin(a,axis = 1)
array([1, 1])
#np.where返回满足条件的元素索引
>>> a = np.array([[11,2,43],[34,15,46]])
>>> np.where(a>10)
(array([0, 0, 1, 1, 1]), array([0, 2, 0, 1, 2]))