numpy的陣列類(numpy.array)中提供了很多便捷的方法,在實現深度學習時,我們將使用這些方法。
import numpy as np
這條語句就是「將numpy作為np匯入」的意思。通過寫成這樣的形式,之後numpy相關的方法均可通過np來呼叫。
a = np.array([1,2,3])
np.array()接收python列表作為引數,生成numpy陣列。
x = np.array([1,2,3])
y = np.array([2,4,6])
print("對應元素加法x+y=",x+y)
print("對應元素減法x-y=",x-y)
print("對應元素乘法x*y=",x*y)
print("對應元素除法x/y=",x/y)
對應測試結果:
a = np.array([[1,2],[3,4]]) # 建立二維陣列a
print(a) # 列印二維陣列a
print(a.shape) # 檢視矩陣a的形狀
print(a.dtype) # 檢視矩陣a中元素的資料型別
對應測試結果:
numpy陣列可以生成n維陣列,這裡只展示了二維陣列(矩陣)的生成。
a = np.array([[1,2],[3,4]])
b = np.array([10,20])
print(a*10) # 矩陣與標量相乘
print(a*b) # 不同形狀的陣列相乘
對應測試結果:
numpy中,形狀不同的陣列之間也可以進行運算。上述例子a*10中,標量10被擴充套件成2*2的形狀,然後再與矩陣a進行乘法運算。例子a*b中,一維陣列b通過複製擴充套件成了2*2的形狀,然後再與矩陣a進行乘法運算。這就是numpy的廣播功能。
x = np.array([[51,55],[14,19],[0,4]])
# 通過下標直接訪問
print(x[0])
print(x[0][1])
# 運用for語句訪問
for row in x:
print(row)
# 使用陣列訪問
x = x.flatten() # 將x轉化為一維陣列
print(x[np.array([0,2,4])]) # 訪問索引為0,2,4的元素
print(x[x>15]) # 訪問x中值大於15的元素
對應測試結果:
對於兩個numpy矩陣x和y,語句np.dot(x,y)表示矩陣乘法x*y,語句np.dot(y,x)表示矩陣乘法y*x。由於矩陣的乘法有對應維度必須相等的限制,我們運用np.dot()方法時要小心謹慎。
特別要注意的一點是,對於(8,9)這樣的一維陣列用於矩陣乘法時,它可以根據維度情況看作1*2的矩陣或2*1的矩陣。
下面是乙個具體例子:
import numpy as np
a = np.array([[1,2],[3,4],[5,6]])
b = np.array([1,2])
c = np.array([[6,6,6],[2,2,2]])
print(np.dot(a,b)) # 計算矩陣a,b的乘積,這裡的一維陣列b看作是2*1的矩陣
print(np.dot(b,c)) # 計算矩陣b,c的乘積,這裡的一維陣列b看作是1*2的矩陣
對應測試結果:
# 本部落格參考了《深度學習入門——基於python的理論與實現》(齋藤康毅著,陸宇杰譯),特在此宣告。
Numpy陣列學習筆記
1 x 0 是numpy中陣列的一種寫法,表示對乙個二維陣列,取該二維陣列第一維中的所有資料,第二維中取第0個資料,直觀來說,x 0 就是取所有行的第0個資料,x 1 就是取所有行的第1個資料。2 二維陣列索引訪問的例子 產生1 9的數 in 28 arr2d np.arange 1,10 resh...
NumPy學習筆記03 陣列屬性
numpy陣列的維數稱為秩 rank 一維陣列的秩為 1,二維陣列的秩為 2,以此類推。numpy 的陣列中比較重要 ndarray 物件屬性有 屬性說明 ndarray.ndim 秩,即軸的數量或維度的數量 ndarray.shape 陣列的維度,對於矩陣,n行m列 ndarray.size 陣列...
Numpy學習筆記(四)陣列屬性
一 陣列屬性 usr bin env python coding utf 8 author jia666 time 2021 2 20 16 44 import numpy as np a np.array 1,2,3 4,5,6 7,8,9 todo 1 檢視a的值 print a 1 2 3 4...