основной ряд столбца массива и основной столбец
У меня проблемы с пониманием какnumpy
хранит свои данные. Учтите следующее:
>>> import numpy as np
>>> a = np.ndarray(shape=(2,3), order='F')
>>> for i in xrange(6): a.itemset(i, i+1)
...
>>> a
array([[ 1., 2., 3.],
[ 4., 5., 6.]])
>>> a.flags
C_CONTIGUOUS : False
F_CONTIGUOUS : True
OWNDATA : True
WRITEABLE : True
ALIGNED : True
UPDATEIFCOPY : False
Это говорит о том, чтоa
основной столбец (F_CONTIGUOUS
) таким образом, внутренне,a
должно выглядеть следующим образом:
[1, 4, 2, 5, 3, 6]
Это именно то, что указано в этомглоссарий, Что меня смущает, так это то, что если я пытаюсь получить доступ к даннымa
линейно вместо этого я получаю:
>>> for i in xrange(6): print a.item(i)
...
1.0
2.0
3.0
4.0
5.0
6.0
На данный момент я не уверен, чтоF_CONTIGUOUS
Флаг говорит нам, так как он не соблюдает порядок. По-видимому, все в Python является мажорной строкой, и когда мы хотим выполнить линейную итерацию, мы можем использовать итераторflat
.
Вопрос в следующем: учитывая, что у нас есть список чисел, скажем:1, 2, 3, 4, 5, 6
как мы можем создатьnumpy
массив формы(2, 3)
в главном порядке колонки? Вот как я могу получить матрицу, которая выглядит следующим образом
array([[ 1., 3., 5.],
[ 2., 4., 6.]])
Я действительно хотел бы иметь возможность линейно перебирать список и помещать их во вновь созданныйndarray
, Причина этого в том, что я буду читать файлы многомерных массивов, установленных в главном порядке столбцов.