數組運算
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]]
'''