Numpy n 維陣列 ndarray
numpy 中的核心資料結構是 ndarray
( n 維陣列的簡稱 )。ndarray
s 是
- 同類的(即它們包含相同資料型別的專案)
- 包含固定大小的專案(由形狀給定, n 個正整數的元組,指定每個維度的大小)
一維陣列:
x = np.arange(15)
# array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14])
x.shape
# (15,)
二維陣列:
x = np.asarray([[0, 1, 2, 3, 4], [5, 6, 7, 8, 9], [10, 11, 12, 13, 14]])
x
# array([[ 0, 1, 2, 3, 4],
# [ 5, 6, 7, 8, 9],
# [10, 11, 12, 13, 14]])
x.shape
# (3, 5)
三維:
np.arange(12).reshape([2,3,2])
要初始化陣列而不指定其內容,請使用:
x = np.empty([2, 2])
# array([[ 0., 0.],
# [ 0., 0.]])
資料型別猜測和自動轉換
預設情況下,data-type 設定為 float
x = np.empty([2, 2])
# array([[ 0., 0.],
# [ 0., 0.]])
x.dtype
# dtype('float64')
如果提供了一些資料,numpy 會猜測資料型別:
x = np.asarray([[1, 2], [3, 4]])
x.dtype
# dtype('int32')
請注意,在進行賦值時,numpy 會嘗試自動轉換值以適應 ndarray
的資料型別
x[1, 1] = 1.5 # assign a float value
x[1, 1]
# 1
# value has been casted to int
x[1, 1] = 'z' # value cannot be casted, resulting in a ValueError
陣列廣播
另請參見廣播陣列操作 。
x = np.asarray([[1, 2], [3, 4]])
# array([[1, 2],
[3, 4]])
y = np.asarray([[5, 6]])
# array([[5, 6]])
在矩陣術語中,我們將有一個 2x2 矩陣和一個 1x2 行向量。我們仍然可以做一筆錢
# x + y
array([[ 6, 8],
[ 8, 10]])
這是因為陣列 y
被拉伸到:
array([[5, 6],
[5, 6]])
適合 x
的形狀。
資源:
- 來自官方文件的 ndarray 簡介: N 維陣列(ndarray)
- 類參考: ndarray 。