1. 程式人生 > >numpy新增新的維度:newaxis

numpy新增新的維度:newaxis

numpy中包含的newaxis可以給原陣列增加一個維度

np.newaxis放的位置不同,產生的新陣列也不同

一維陣列

x = np.random.randint(1, 8, size=5)

x
Out[48]: array([4, 6, 6, 6, 5])

x1 = x[np.newaxis, :]

x1
Out[50]: array([[4, 6, 6, 6, 5]])

x2 = x[:, np.newaxis]

x2
Out[52]: 
array([[4],
       [6],
       [6],
       [6],
       [5]])

由以上程式碼可以看出,當把newaxis放在前面的時候

以前的shape是5,現在變成了1×5,也就是前面的維數發生了變化,後面的維數發生了變化

而把newaxis放後面的時候,輸出的新陣列的shape就是5×1,也就是後面增加了一個維數

所以,newaxis放在第幾個位置,就會在shape裡面看到相應的位置增加了一個維數

如下:

這裡寫圖片描述

一般問題

經常會遇到這樣的問題,需要從陣列中取出一部分的資料,也就是取出“一片”或者“一條”

比如需要從二維數組裡面抽取一列

取出來之後維度卻變成了一維

假如我們需要將其還原為二維,就需要上面的方法了