Скажем, у нас есть матрица (массив numpy) неизвестной формы, форма может быть, например, (1,5)
(строка), (5,1)
(столбец), (5,5)
(квадрат), (5,6)
(неквадрат) или (5,)
(вырожденный) (хорошо, последний случай не является матрицей, но является допустимым вводом).
Я хотел бы дать матрицу любой формы (столбец, строка, квадрат, неквадратвыродились).Я верну перевернутую версию вверх / вниз влево / вправо.
Так как np.flip
имеет некоторые проблемы с 1d массивами.Мой подход был:
def flipit(M):
return M.ravel()[::-1].reshape(M.shape)
Это работает, но это приемлемо?Есть ли более быстрые способы сделать это?
С другой стороны, как я могу сделать то же самое для разреженных матриц (например, если M
равно scipy.sparse.csr_matrix
).