python numpy陣列的維度增減方法

2021-10-01 12:41:23 字數 1656 閱讀 7900

使用np.expand_dims()為陣列增加指定的軸,np.squeeze()將陣列中的軸進行壓縮減小維度。

1.增加numpy array的維度

在運算元組情況下,需要按照某個軸將不同陣列的維度對齊,這時候需要為陣列新增維度(特別是將二維陣列變成高維張量的情況下)。numpy提供了expand_dims()函式來為陣列增加維度:

import numpy as np

a = np.array([[

1,2]

,[3,

4]])

a.shape

print

(a)>>

>

"""(2l, 2l)

[[1 2]

[3 4]]

"""# 如果需要在陣列上增加維度,輸入需要增添維度的軸即可,注意index從零還是

a_add_dimension = np.expand_dims(a,axis=0)

a_add_dimension.shape

>>

>

(1l, 2l, 2l)

a_add_dimension2 = np.expand_dims(a,axis=-1

)a_add_dimension2.shape

>>

>

(2l, 2l, 1l)

a_add_dimension3 = np.expand_dims(a,axis=1)

a_add_dimension3.shape

>>

>

(2l, 1l, 2l)

2.壓縮維度移除軸

在陣列中會存在很多軸只有1維的情況,可以使用squeeze函式來壓縮冗餘維度

b = np.array([[

[[5]

,[6]

],[[

7],[

8]]]

])b.shape

print

(b)>>

>

"""(1l, 2l, 2l, 1l)

array([[[[5],

[6]],

[[7],

[8]]]])

"""b_squeeze = b.squeeze(

)b_squeeze.shape

>>

>

(2l, 2l)

#預設壓縮所有為1的維度

b_squeeze0 = b.squeeze(axis=0)

#呼叫array例項的方法

b_squeeze0.shape

>>

>

(2l, 2l, 1l)

b_squeeze3 = np.squeeze(b, axis=3)

#呼叫numpy的方法

Python NumPy一維陣列的切片

numpy中對於一維陣列的切片處理,跟list的操作感覺差不多 in 1 import numpy as np in 2 arr1 np.arange 10 in 3 arr1 out 3 array 0,1,2,3,4,5,6,7,8,9 in 4 arr2 arr1 3 in 5 arr2 ou...

Python Numpy二維陣列和Numpy中的軸

二維陣列的表示方法 python原生 列表的列表 numpy ndarray pandas dataframe 二維ndarray與python list 1.ndarry效能更好 3.訪問語法差別 a 1,2 numpy ndarray a 1 2 python list numpy的軸 axis...

python numpy 陣列的切片

參考 對於一維陣列 來說,python原生的list和numpy的array的切片操作都是相同的。arr name start end step 是複製源的意思 對於二維陣列來說,對陣列操作規範是這樣的 arr name 行操作,列操作 舉個例子 in np.arrange 12 reshape 3...