np.newaxis 為 numpy.ndarray(多維陣列)增加一個軸
>> type(np.newaxis)
NoneType
>> np.newaxis == None
True
np.newaxis 在使用和功能上等價於 None,檢視原始碼發現:newaxis = None
,其實就是 None 的一個別名。
1. np.newaxis 的實用
>> x = np.arange(3)
>> x
array([0, 1, 2])
>> x.shape
(3,)
>> x[:, np.newaxis]
array([[0],
[1],
[2]])
>> x[:, None]
array([[0],
[1],
[2]])
>> x[:, np.newaxis].shape
(3, 1)
2. 索引多維陣列的某一列時返回的是一個行向量
>>> X = np.array([[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]])
>>> X[:, 1]
array([2, 6, 10]) % 這裡是一個行
>>> X[:, 1].shape % X[:, 1] 的用法完全等同於一個行,而不是一個列,
(3, )
如果我們索引多維陣列的某一列時,返回的仍然是列的結構,一種正確的索引方式是:
>>>X[:, 1][:, np.newaxis]
array([[2],
[6],
[10]])
如果想實現第二列和第四列的拼接(層疊):
>>>X_sub = np.hstack([X[:, 1][:, np.newaxis], X[:, 3][:, np.newaxis]])
% hstack:horizontal stack,水平方向上的層疊
>>>X_sub
array([[2, 4]
[6, 8]
[10, 12]])
當然更為簡單的方式還是使用切片:
>> X[:, [1, 3]]
array([[ 2, 4],
[ 6, 8],
[10, 12]])
3. 使用 np.expand_dims
>> X = np.random.randint(0, 9, (2, 3))
>> mean_X = np.mean(X, axis=0)
>> X - mean_X # 這樣做是沒有問題的
>> mean_X = np.mean(X, axis=1)
>> X - mean_X
ValueError: operands could not be broadcast together with shapes (2,3) (2,)
此時便需要手動的調整 mean_X 的維度,使其能夠 broadcast,有以下三種方式,在指定的軸上進行 broadcast:
- mean_X[:, None]
- mean_X[:, np.newaxis]
- mean_X = np.expand_dims(mean_X, axis=1)
相關文章
- PHP多個多維陣列操作(一)PHP陣列
- JavaScript 學習筆記 - 多維陣列變為一維陣列JavaScript筆記陣列
- 一維多維陣列陣列
- 多維陣列轉一維陣列(降維的多種方式)陣列
- Python多個陣列合並(拼接)為一個陣列Python陣列
- 將一個多維陣列徹底的降維陣列
- php 一維陣列變多維PHP陣列
- 多維陣列陣列
- PHP中二維陣列與多維陣列PHP陣列
- JavaSE 陣列:一維陣列&二維陣列Java陣列
- 多維陣列拍平一層陣列
- 構建一個 Javascript 多維陣列構造器JavaScript陣列
- 多維陣列排序陣列排序
- 簡單介紹Lua一維陣列與多維陣列的使用陣列
- C/C++ 二維陣列的理解(多維陣列)C++陣列
- js 一維陣列轉二維陣列JS陣列
- js 二維陣列轉一維陣列JS陣列
- PHP二維陣列轉一維陣列PHP陣列
- PHP 多維陣列排序PHP陣列排序
- 一維陣列陣列
- JavaScript --二維陣列查詢一維陣列JavaScript陣列
- [php]運用變數引用實現一維陣列轉多維樹狀陣列PHP變數陣列
- scala語法 -多維陣列陣列
- 多維陣列扁平化陣列
- 將兩個有序陣列合併為一個有序陣列陣列
- JavaScript二維陣列轉換成一維陣列JavaScript陣列
- PHP 多維陣列排序-按某個 key 的值PHP陣列排序
- 將一個Collection轉為陣列陣列
- 陣列004 動態建立一維陣列陣列
- NumPy之:ndarray多維陣列操作陣列
- Multik——Kotlin的多維陣列Kotlin陣列
- c++筆記_多維陣列C++筆記陣列
- python多維陣列切片方法Python陣列
- php多維陣列去除空元素PHP陣列
- JAVA多維陣列的遍歷Java陣列
- 陣列鍵值統一增加字首陣列
- PHP一維陣列轉二維陣列正規表示式PHP陣列
- Java 二維陣列轉一維Java陣列