>> 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...