Numpy學習筆記——數組運算

數組運算

ar=np.arange(1,9).reshape(2,4)
print(ar)
print(ar+1)
print(ar-1)
print(ar*5)
print(8/ar)
print(ar**(0.5))#冪
#+= *=
print('----------')
ar1=np.ones((2,3),dtype=int)
ar2=np.arange(1,7).reshape(2,3)
ar3=np.random.rand(2,3)
print('ar1\n',ar1)
print('ar2\n',ar2)
print('ar3\n',ar3)
print('不同類型相加 ar1+ar3\n',ar1+ar3)
#casting rule 'same_kind'
ar1*=3
print('ar1*=3 等價於 ar1=ar1*3\n',ar1)
ar2+=ar1
print('ar2+=ar1 等價於 ar2=ar2+ar1\n',ar2)
'''
[[1 2 3 4]
 [5 6 7 8]]
[[2 3 4 5]
 [6 7 8 9]]
[[0 1 2 3]
 [4 5 6 7]]
[[ 5 10 15 20]
 [25 30 35 40]]
[[8.         4.         2.66666667 2.        ]
 [1.6        1.33333333 1.14285714 1.        ]]
[[1.         1.41421356 1.73205081 2.        ]
 [2.23606798 2.44948974 2.64575131 2.82842712]]
----------
ar1
 [[1 1 1]
 [1 1 1]]
ar2
 [[1 2 3]
 [4 5 6]]
ar3
 [[0.636418   0.0951684  0.27228144]
 [0.00274012 0.27016612 0.33846301]]
不同類型相加 ar1+ar3
 [[1.636418   1.0951684  1.27228144]
 [1.00274012 1.27016612 1.33846301]]
ar1*=3 等價於 ar1=ar1*3
 [[3 3 3]
 [3 3 3]]
ar2+=ar1 等價於 ar2=ar2+ar1
 [[4 5 6]
 [7 8 9]]
'''

求和、排序時,參數axis=0 按列計算,axis=1按行計算

ar=np.arange(1,9).reshape(2,4)
print('ar\n',ar)
print('max求最大值',ar.max())
print('min求最小值',ar.min())
print('mean求平均值:',ar.mean())
print('std標準差',ar.std())
print('var方差',ar.var())
#求和
print('\n求和')
print('ar.sum求和,所有元素和',ar.sum())
print('np.sum(ar,axis=0)按列求和',np.sum(ar,axis=0))
print('ar.sum(axis=0)按列求和',ar.sum(axis=0))
print('np.sum(ar,axis=1)按行求和',np.sum(ar,axis=1))
print('ar.sum(axis=1)按行求和',ar.sum(axis=1))
#排序
print('\n排序')
ar4=np.array([[1,5,3],[2,1,7]])
print(ar4)
print('np.sort排序,axis=0,按列排序:\n',np.sort(ar4,axis=0))
print('np.sort排序,axis=1,按行排序:\n',np.sort(ar4,axis=1))

乘法注意對應元素相乘和矩陣乘法

# 乘法

A=np.array([[1,1],
           [0,1]])
B=np.array([[2,0],
            [3,4]])
print('A*B 對應位置元素相乘\n',A*B) 
print('A@B 矩陣乘法 python>=3.5 \n',A@B)
print('A.dot(B) 矩陣乘法\n',A.dot(B))

A=np.array([[1,1,1],
           [0,1,2]])
B=np.array([[2,0],
            [3,4],
            [4,5]])
#*法必須等維度的兩個數組
# matrix product要求兩個矩陣m*n n*k 
#print('A*B 對應位置元素相乘\n',A*B) 
print('A@B 矩陣乘法 python>=3.5 \n',A@B)
print('A.dot(B) 矩陣乘法\n',A.dot(B))
'''

A*B 對應位置元素相乘
 [[2 0]
 [0 4]]
A@B 矩陣乘法 python>=3.5 
 [[5 4]
 [3 4]]
A.dot(B) 矩陣乘法
 [[5 4]
 [3 4]]
A@B 矩陣乘法 python>=3.5 
 [[ 9  9]
 [11 14]]
A.dot(B) 矩陣乘法
 [[ 9  9]
 [11 14]]
'''
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章