@Olddd

Как исправить поворот массива numpy?

Здравствуйте! Написал код, выдаёт in rot90 raise ValueError("Axes must be different.")
import numpy as np


def super_sort(rows, cols):
    arr = np.array([np.random.randint(1, 100) for i in range(rows * cols)])
    arr.reshape(rows, cols)
    arr_b = np.rot90(np.copy(arr), k=1, axes=(0, 1))
    for i in range(len(arr_b)):
        if i % 2 == 0:
            arr_b = sorted(arr_b)
        else:
            arr_b = sorted(arr_b, reverse=True)
    arr_b = np.rot90(arr_b, k=3, axes=(0, 1))
    return arr, arr_b

Код не сложный, думаю, комментарии не требуются
Заранее спасибо
  • Вопрос задан
  • 40 просмотров
Пригласить эксперта
Ответы на вопрос 1
@Vindicar
метод reshape() возвращает версию массива с другими размерами, а не меняет эти размеры на месте.
Так как вы игнорируете возвращаемое значение, вы пытаетесь повернуть одномерный вектор.
Но там ещё будут проблемы с sorted(arr_b), так как sorted() интерпретирует двумерный массив как коллекцию одномерных, и пытается сортировать только эту коллекцию.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы