Я ищу функцию Python, которая, учитывая двумерный массив A, выведет B:
A = [[a, b, c],
[d, e, f],
[g, h, i]]
B = [[a, d, g],
[b, e, h],
[c, f, i]]
то есть первая строка становится первым столбцом, вторая строка становится вторым столбцом и т. д.
Спасибо.
A = [[a, b, c],
[d, e, f],
[g, h, i]]
B = zip(*A)
Все, что вам нужно, это транспонировать матрицу. Вот пример
import numpy as np
A = np.array([[1,2,3],
[4,5,6],
[7,8,9]])
B = A.T
# array([[1, 4, 7],
# [2, 5, 8],
# [3, 6, 9]])
Попробуй это,
>>> A = np.array([[1,2,3],
[4,5,6],
[7,8,9]])
>>> [list(i) for i in zip(*A)]
[[1, 4, 7], [2, 5, 8], [3, 6, 9]] #output
Вы используете zip(*A)
в своем ответе. Где вы определили A
? Вот что я говорю
Что, точно ты имеешь ввиду под 2d массивом? У вас есть список списков? А
numpy.ndarray
? Соответствующий ответ будет зависеть от того, с чем вы на самом деле работаете, и в любом случае, вероятно, является дубликатом.