Python numpy 中array和mat的區別

### 矩陣生成
a=[1,2,3,4,5,7,7,8,10] # 3*3
b = np.array(a)
print("a"+str(a))  ## a[1, 2, 3, 4, 5, 7, 7, 8, 10]

b= b.reshape(3,3)
print("b"+str(b))
'''
b[[ 1  2  3]
 [ 4  5  7]
 [ 7  8 10]]
'''

c = np.mat(b)
print("c"+str(c))
'''
 c[[ 1  2  3]
 [ 4  5  7]
 [ 7  8 10]]
'''

### 單目運算
print("c.T\n"+str(c.T))
'''
[[ 1  4  7]
 [ 2  5  8]
 [ 3  7 10]]
'''

print("c.I\n"+str(c.I)) # 逆
'''
[[-2.          1.33333333 -0.33333333]
 [ 3.         -3.66666667  1.66666667]
 [-1.          2.         -1.        ]]
'''

print(" np.linalg.pinv\n"+str( np.linalg.pinv(c)))# 廣義逆
'''
[[-2.          1.33333333 -0.33333333]
 [ 3.         -3.66666667  1.66666667]
 [-1.          2.         -1.        ]]
'''

#### 矩陣運算

print("c+c\n"+str(c+c))
'''
[[ 2  4  6]
 [ 8 10 14]
 [14 16 20]]
'''


print("b+b\n"+str(b+b))
'''
[[ 2  4  6]
 [ 8 10 14]
 [14 16 20]]
'''


print("c*c\n"+str(c*c)) ## 矩陣乘法
'''
[[ 30  36  47]
 [ 73  89 117]
 [109 134 177]]
'''

print("np.dot(b,b)\n"+str(np.dot(b,b))) # 不需要轉置
'''
[[ 30  36  47]
 [ 73  89 117]
 [109 134 177]]
'''


print("b*b\n"+str(b*b))  # 對應位置的元素相乘
'''
[[  1   4   9]
 [ 16  25  49]
 [ 49  64 100]]
'''

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章