1.為數(shù)組加上或者乘以一個標(biāo)量
>>> import numpy as np
>>> a=np.array([1,2,3,4,5])
>>> a
array([1, 2, 3, 4, 5])
>>> a*1
array([1, 2, 3, 4, 5])
>>> a
array([1, 2, 3, 4, 5])
>>> a*2
array([ 2,?4,?6,?8, 10])
>>> a
array([1, 2, 3, 4, 5])
2.兩個數(shù)組進(jìn)行計算
1)元素數(shù)量相同
>>> a
array([1, 2, 3, 4, 5])
>>> b=np.array([2,3,4,5,6])
>>> b
array([2, 3, 4, 5, 6])
>>> a*b
array([ 2,?6, 12, 20, 30])
>>> a
array([1, 2, 3, 4, 5])
>>> b
array([2, 3, 4, 5, 6])
2)元素數(shù)量不同:會報錯
>>> b
array([2, 3, 4, 5, 6])
>>> c=np.array([3,4,5,6,7,8,9])
>>> c
array([3, 4, 5, 6, 7, 8, 9])
>>> b*c
Traceback (most recent call last):
?File "", line 1, in
ValueError: operands could not be broadcast together with shapes (5,) (7,)
3.可以對一個數(shù)組先進(jìn)行函數(shù)運(yùn)算蹄殃,該函數(shù)運(yùn)算返回值也是一個數(shù)組
>>> a
array([1, 2, 3, 4, 5])
>>> b=np.sin(a)
>>> b
array([ 0.84147098,?0.90929743,?0.14112001, -0.7568025 , -0.95892427])
4.多維數(shù)組的運(yùn)算也是元素級別的
>>> a=np.arange(9).reshape(3,3)
>>> a
array([[0, 1, 2],
??????[3, 4, 5],
??????[6, 7, 8]])
>>> b=np.zeros((3,3))
>>> b
array([[ 0.,?0.,?0.],
??????[ 0.,?0.,?0.],
??????[ 0.,?0.,?0.]])
>>> a*b
array([[ 0.,?0.,?0.],
??????[ 0.,?0.,?0.],
??????[ 0.,?0.,?0.]])
5.矩陣積
1)c=np.dot(a,b)求a和b的矩陣積--第一種寫法
>>> a=np.arange(9).reshape(3,3)
>>> b=np.random.random(9).reshape(3,3)
>>> a
array([[0, 1, 2],
??????[3, 4, 5],
??????[6, 7, 8]])
>>> b
array([[ 0.1752667 ,?0.61713814,?0.63455636],
??????[ 0.42635687,?0.9609163 ,?0.40790306],
??????[ 0.01270341,?0.29411413,?0.52187812]])
>>> c=np.dot(a,b)
>>> c
array([[?0.4517637 ,??1.54914457,??1.45165931],
??????[?2.29474465,??7.1656503 ,??6.14467194],
??????[?4.1377256 ,?12.78215603,?10.83768457]])
2)c=a.dot(b)
>>> c=a.dot(b)
>>> c
array([[?0.4517637 ,??1.54914457,??1.45165931],
??????[?2.29474465,??7.1656503 ,??6.14467194],
??????[?4.1377256 ,?12.78215603,?10.83768457]])
>>> a
array([[0, 1, 2],
??????[3, 4, 5],
??????[6, 7, 8]])
>>> b
array([[ 0.1752667 ,?0.61713814,?0.63455636],
??????[ 0.42635687,?0.9609163 ,?0.40790306],
??????[ 0.01270341,?0.29411413,?0.52187812]])
6.數(shù)組的自運(yùn)算:不會新生數(shù)組巾钉,改變原數(shù)組
>>> a
array([[0, 1, 2],
??????[3, 4, 5],
??????[6, 7, 8]])
>>> a+=1
>>> a
array([[1, 2, 3],
??????[4, 5, 6],
??????[7, 8, 9]])
7.通用函數(shù):ufunx
對數(shù)組中的每個元素逐一進(jìn)行操作蛙埂,生成一個新數(shù)組般眉,如平方根函數(shù)sqrt() 對數(shù)函數(shù) log() 正弦函數(shù)sin()
>>> a
array([[1, 2, 3],
??????[4, 5, 6],
??????[7, 8, 9]])
>>> b=np.sin(a)
>>> b
array([[ 0.84147098,?0.90929743,?0.14112001],
??????[-0.7568025 , -0.95892427, -0.2794155 ],
??????[ 0.6569866 ,?0.98935825,?0.41211849]])
>>> c=np.sqrt(a)
>>> c
array([[ 1.???????,?1.41421356,?1.73205081],
??????[ 2.???????,?2.23606798,?2.44948974],
??????[ 2.64575131,?2.82842712,?3.???????]])
>>> d=np.log(a)
>>> d
array([[ 0.???????,?0.69314718,?1.09861229],
??????[ 1.38629436,?1.60943791,?1.79175947],
??????[ 1.94591015,?2.07944154,?2.19722458]])
8.聚合函數(shù)
對一數(shù)組進(jìn)行聚合函數(shù)的套用,返回一個單一值作為結(jié)果
>>> a
array([[1, 2, 3],
??????[4, 5, 6],
??????[7, 8, 9]])
>>> a.sum()
45
>>> a.max()
9
>>> a.min()
1
>>> a.mean()
5.0
>>> a.std()
2.5819888974716112