numpy 維度與軸的問題

2021-07-25 17:36:59 字數 1442 閱讀 4804

>> x = np.reshape(np.arange(24), (2, 3, 4))

# 也即 2 行 3 列的 4 個平面(plane)

>> x

array([[[ 0, 1, 2, 3],

[ 4, 5, 6, 7],

[ 8, 9, 10, 11]],

[[12, 13, 14, 15],

[16, 17, 18, 19],

[20, 21, 22, 23]]])

再來分別看每乙個平面的構成:

>> x[:, :, 0]

array([[ 0, 4, 8],

[12, 16, 20]])

>> x[:, :, 1]

array([[ 1, 5, 9],

[13, 17, 21]])

>> x[:, :, 2]

array([[ 2, 6, 10],

[14, 18, 22]])

>> x[:, :, 3]

array([[ 3, 7, 11],

[15, 19, 23]])

也即在對np.arange(24)(0, 1, 2, 3, ..., 23)進行重新的排列時,在多維陣列的多個軸的方向上,先分配最後乙個軸(對於二維陣列,即先分配行的方向,對於三維陣列即先分配平面的方向)

>> a = np.random.rand(2, 3)

>> a.shape

(2l, 3l)

>> a[none, :].shape

(1l, 2l, 3l)

>> a[none, :, :].shape

(1l, 2l, 3l)

這是乙個強大的函式,在指定軸上,按指定的函式進行操作;

>>> b = np.array([[1,2,3], [4,5,6], [7,8,9]])

# 在列方向進行差分的動作

array([[3, 3, 3],

[3, 3, 3]])

array([[1, 1],

[1, 1],

[1, 1]])

>>> b = np.array([[8,1,7], [4,3,9], [5,2,6]])

array([[1, 7, 8],

[3, 4, 9],

[2, 5, 6]])

這個函式真正的意義在於什麼,除了更精細化,customized的處理行和列外,它對一些不具備axis引數的函式,使其具備逐行或者逐列處理的能力 np.bincount(),而不必逐行逐列地進行遍歷。

p = np.asarray([clf.predict(x) for clf in self.classifiers_])

numpy 維度與軸

albert chen albert chen 的個人部落格 發表於 2016 09 01 分類於程式語言 我知道 numpy 是多維陣列,但是一直不理解其軸 axis 的概念,以及基於軸之上的計算。今天寫了些例項終於理解了。首先是維度,對人來說高維空間是很難想象的,但是我們可以從純數學的角度來看。...

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 軸的理解

在numpy中關於axis的軸有時會有點暈,這裡做下總結 如果axis 0,表示0軸,第乙個維度 axis 1,表示1軸,第二個維度 有點抽象 本地使用jupyter,設沒注釋的為 輸入,注釋部分為輸出 二維 import numpy as np a np.array 1,2,3 4,5,6 a a...