2017-02-10 4 views
-1

У меня есть патч data, который имеет форму (10,10,10). Я использую функцию транспонирования в питона, какЧто такое транспонирование (3, 0, 1, 2) в python

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

что это значит в 3, 0, 1, 2. Потому что я получил ошибку в

ValueError: axes don't match array

Как я могу это исправить. Я использую Python 2.7

ответ

1

Из документации питона на np.transpose, то второй аргумент функции np.transpose является axes, которая является список Интс, необязательно по по умолчанию и измените размеры, в противном случае переместите оси в соответствии с данными.

Пример:

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

Используйте транспонирование (а, argsort (оси)), чтобы инвертировать транспозиции тензоров при использовании осей ключевых слов аргументов.

Транспонирование 1-мерного массива возвращает неизменный вид исходного массива .


например,

>>> 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 
>>> 
Смежные вопросы