ValueError: Axes must be different

Я пытаюсь повернуть массив (список строк) на 90 градусов с помощью функции numpy np.rot90.

list = ['123', '456', '789']
list = np.rot90(list)

Возникает ошибка

ValueError: Axes must be different.

Почему это происходит?


Ответы (2 шт):

Автор решения: CrazyElf

У вас массив всего с одним измерением. Такой массив нельзя повернуть:

import numpy as np

print(np.array(['123', '456', '789']).ndim)
# 1

Для поворота нужен двумерный массив (или "матрица"). Добавим ещё скобки, чтобы получился двумерный питоновский список (список в списке):

import numpy as np

print(np.array([['123', '456', '789']]).ndim)
# 2

Окончательный код:

import numpy as np

lst = [['123', '456', '789']]
lst = np.rot90(lst)
print(lst)

Вывод:

[['789']
 ['456']
 ['123']]

Это довольно тонкий момент, но к такому вам придётся привыкать, если будете работать с Numpy.

→ Ссылка
Автор решения: Oopss

У тебя массив из трех элементов [строка1, строка2, строка3]

 list = ['123', '456', '789']

наверно должно быть так?

import numpy as np

list1 = np.array([[1,2,3], [4,5,6], [7,8,9]])
list2 = np.rot90(list1,k=1,axes=(1,0))

print(list1)
print(list2)

[[1 2 3]
 [4 5 6]
 [7 8 9]]
[[7 4 1]
 [8 5 2]
 [9 6 3]]
→ Ссылка