分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!
多維陣列的軸(axis=)是和該陣列的size(或者shape)的元素是相對應的;
>>> np.random.seed(123)>>> x = np.random.randint(0, 5, [3, 2, 2])>>> print(x)[[[5 2] [4 2]]
[[1 3] [2 3]]
[[1 1] [0 1]]]>>> x.sum(axis=0)array([[7, 6], [6, 6]])>>> x.sum(axis=1)array([[9, 4], [3, 6], [1, 2]])>>> x.sum(axis=2)array([[7, 6], [4, 5], [2, 1]])
如果將三維陣列的每乙個二維看做乙個平面(plane,x[0, :, :], x[1, :, :], x[2, :, :]),三維陣列即是這些二維平面層疊(stacked)出來的結果。則(axis=0)表示全部平面上的對應位置,(axis=1),每乙個平面的每一列,(axis=2),每乙個平面的每一行。
numpy.dot(a, b, out=none)
>>> x.dot([1, 1])array([[7, 6], [4, 5], [2, 1]]) # x的最後一軸是每乙個二維的行方向
此時如果我們想通過矩陣與向量(一維)內積的方式實現(np.sum(x, axis=0)的結果)需使用np.tensordots(x, [1, 1, 1], axes=([0], [0])),具體的用法見 np.tensordots文件。
>>> np.tensordots(x, [1, 1, 1], axes=([0], [0]))array([[7, 6], [6, 6]])
我們再來看看如何實現多維陣列求平均的動作(每乙個二維平面對應位的平均):
>>> x = np.random.randint(0, 5, [3, 2, 2])>>> xarray([[[3, 4], [2, 2]], [[3, 4], [2, 3]], [[2, 1], [1, 3]]])>>> np.tensordot(x, [1/3, 1/3, 1/3], axes=([0], [0]))array([[ 2.66666667, 3. ], [ 1.66666667, 2.66666667]])
給我老師的人工智慧教程打call!
numpy中多維陣列的軸(axis)
多維陣列的軸 axis 是和該陣列的size 或者shape 的元素是相對應的 np.random.seed 123 x np.random.randint 0,5,3,2,2 print x 5 2 4 2 1 3 2 3 1 1 0 1 x.sum axis 0 array 7,6 6,6 x....
numpy中多維陣列的軸(axis)
分享一下我老師大神的人工智慧教程。零基礎!通俗易懂!風趣幽默!還帶黃段子!希望你也加入到我們人工智慧的隊伍中來!多維陣列的軸 axis 是和該陣列的size 或者shape 的元素是相對應的 np.random.seed 123 x np.random.randint 0,5,3,2,2 print...
Numpy多維陣列的軸對換 transpose
轉置中,transpose方法返回的是源資料的檢視,就是說修改了檢視就會把源資料也改了。高維陣列,transpose的方法如下展示 建立乙個形狀為 2,2,4 的三維陣列 arr np.arange 16 reshape 2,2,4 arr array 0,1,2,3 4,5,6,7 8,9,10,...