numpy陣列的維度操作和axis的對應關係

2021-09-29 19:07:42 字數 1253 閱讀 9245

import numpy as np

np.random.seed(123)

a = np.random.randint(0,5,[3,3,2])

print(a)

print(a[-1,:,:]) # -1 就是 2

output: 

[[[2 4]

[2 1]

[3 2]]

[[3 1]

[1 0]

[1 1]]

[[0 0]

[1 3]

[4 0]]]

[[0 0]

[1 3]

[4 0]]

axis = 0對應陣列最外層,將內層只看成各有一維,即[, , ,] 最外層元素的貫穿

axis=1對應陣列次外層,即[ , , ],只分別關注次層,次外層元素的 貫穿

axis = 2對應陣列內層,即[,,], 最內層元素的 貫穿

axis = -1對應陣列最內層,等價於axis = 2 ,即最內層元素的貫穿處理。

axis = -1 常見用於影象資料增加一維, np.expand_dims(data ,axis = -1) →  [ , , , 1]

a.sum(axis = 0)  #最低維度,將各層的元素按最外層維度對應相加    2+3+0, 4+1+0

#output:

array([[5, 5],

[4, 4],

[8, 3]])

a.sum(axis = 1)# 將自身的每層的元素,在層內對應的倒數第二維度分別相加   2+2+3, 4+1+2

#output:

array([[7, 7],

[5, 2],

[5, 3]])

a.sum(axis = 2)# 將每層最內層的元素分別相加   4+2, 3+1,3+2

#output:

array([[6, 3, 5],

[4, 1, 2],

[0, 4, 4]])

numpy的陣列維度問題

由於之前寫c 的時候大多用的是小於3維的陣列,所以看到python中numpy的高維array 陣列 層層疊疊的感覺把眼都看花了。現在讓我們睜大眼睛,仔細看看到底是怎麼回事。舉例說明 x1 np.array 1,2,3 4,5,6 x1.shape 2,3 x2 np.array 0 1 2 x2....

numpy 陣列操作

在給定的區間 start,stop 內返回均勻間隔的值 語法 numpy.arange start,stop,step,dtype none 引數 返回 示例 np.arange 5 array 0,1,2,3,4 np.arange 1,5 array 1,2,3,4 np.arange 1,5,...

numpy入門 陣列操作

import numpy as np import pandas as pd 建立乙個多維陣列 np1 np.random.randint low 4,high 90,size 4,5,6 np2 np.random.randint low 4,high 77,size 4,5,6 根據條件篩選陣列...