2017-02-10 9 views
-1

我有一個補丁data,它的形狀是(10,10,10)。我用的是轉功能Python作爲python中的轉置(3,0,1,2)是什麼意思

data.transpose(3, 0, 1, 2)

是什麼意思的3, 0, 1, 2。因爲我得到了錯誤的

ValueError: axes don't match array

我怎麼能解決這個問題。我使用Python 2.7

回答

1

np.transpose指定的值太多從Python文檔中,np.transpose函數的第二個參數是axes,這是INTS的列表,可選 通過默認和顛倒尺寸,否則根據給定值排列軸 。

實施例:

>>> x = np.arange(9).reshape((3,3)) 
>>> x 
array([[0, 1, 2], 
     [3, 4, 5], 
     [6, 7, 8]]) 

>>> np.transpose(x, (0,1)) 
array([[0, 1, 2], 
     [3, 4, 5], 
     [6, 7, 8]]) 

>>> np.transpose(x, (1,0)) 
array([[0, 3, 6], 
     [1, 4, 7], 
     [2, 5, 8]]) 
+0

謝謝,所以,如果我的數據是(3,3,3,2)是什麼data.transpose(3,0,1,2)指? – user8264

1

看一看numpy.transpose

使用轉置(A,argsort(軸))使用的軸關鍵字參數當反轉張量 的換位。

移調一維數組會返回原始的 數組的一個未改變的視圖。


例如,

>>> x = np.arange(4).reshape((2,2)) 
>>> x 
array([[0, 1], 
     [2, 3]]) 
>>> 
>>> np.transpose(x) 
array([[0, 2], 
     [1, 3]]) 
1

你在轉

>>> a = np.arange(8).reshape(2,2,2) 
>>> a.shape (2, 2, 2) 
>>> a.transpose([2,0,1]) 
array([[[0, 2], 
     [4, 6]], 

     [[1, 3], 
     [5, 7]]]) 
>>> a.transpose(3,0,1,2) Traceback (most recent call last): File "<interactive input>", line 1, in <module> ValueError: axes don't match array 
>>> 
相關問題