In [99]: B = np.array([[2, 4, 6], [4, 8, 10]])
In [100]: B
Out[100]:
array([[ 2, 4, 6],
[ 4, 8, 10]])
target:
In [101]: np.array([[2, 4],[6, 4],[8, 10]])
Out[101]:
array([[ 2, 4],
[ 6, 4],
[ 8, 10]])
simple reshape:
In [102]: B.reshape(3,2)
Out[102]:
array([[ 2, 4],
[ 6, 4],
[ 8, 10]])
reshape
говорит, что он по существу растягивает массив, а затем создает новый с новой формой:
In [103]: B.ravel()
Out[103]: array([ 2, 4, 6, 4, 8, 10])
Ваша цель удерживает элементы ravelled
в том же порядке. Нет необходимости переупорядочивать.
Делать то же самое со списками - больше работы.
Вложенные списки легко переносятся как операция:
In [104]: B.tolist()
Out[104]: [[2, 4, 6], [4, 8, 10]]
In [105]: list(zip(*B.tolist()))
Out[105]: [(2, 4), (4, 8), (6, 10)]
In [106]: B.T
Out[106]:
array([[ 2, 4],
[ 4, 8],
[ 6, 10]])
, но вы не хочу этого.
Быстрый способ получить ваш A_list
- это
In [107]: B.ravel().tolist()
Out[107]: [2, 4, 6, 4, 8, 10]
, и один из способов собрать 3 списка из 2:
In [112]: B_list = B.ravel().tolist()
In [113]: [[i,j] for i,j in zip(B_list[::2], B_list[1::2])]
Out[113]: [[2, 4], [6, 4], [8, 10]]