Я думаю, ответ будет очевиден, но в настоящий момент я его не вижу.
Как мне преобразовать массив записей обратно в обычный ndarray?
Предположим, у меня есть следующий простой структурированный массив:
x = np.array([(1.0, 4.0,), (2.0, -1.0)], dtype=[('f0', '<f8'), ('f1', '<f8')])
, тогда я хочу преобразовать его в:
array([[ 1., 4.],
[ 2., -1.]])
Я попробовал asarray
и astype
, но это не сработало.
ОБНОВЛЕНИЕ (решено: float32 (f4) вместо float64 (f8))
Хорошо, я попробовал решение Роберта ( Я думаю, ответ будет очевиден, но в настоящий момент я его не вижу. Как мне преобразовать массив записей обратно в обычный ndarray? Предположим, у меня есть следующий простой структурированный массив: , тогда я хочу преобразовать его в: Я попробовал ОБНОВЛЕНИЕ (решено: float32 (f4) вместо float64 (f8)) Хорошо, я попробовал решение Роберта ( Я думаю, ответ будет очевиден, но в настоящий момент я его не вижу. Как мне преобразовать массив записей обратно в обычный ndarray? Предположим, у меня есть следующий простой структурированный массив: , тогда я хочу преобразовать его в: Я попробовал ОБНОВЛЕНИЕ (решено: float32 (f4) вместо float64 (f8)) Хорошо, я попробовал решение Роберта ( Как мне преобразовать массив записей обратно в обычный ndarray? Предположим, у меня есть следующий простой структурированный массив: , тогда я хочу преобразовать его в: Я попробовал ОБНОВЛЕНИЕ (решено: float32 (f4) вместо float64 (f8)) Хорошо, я попробовал решение Роберта ( Как мне преобразовать массив записей обратно в обычный ndarray? Предположим, у меня есть следующий простой структурированный массив: , тогда я хочу преобразовать его в: Я попробовал ОБНОВЛЕНИЕ (решено: float32 (f4) вместо float64 (f8)) Хорошо, я попробовал решение Роберта ( , а затем: дает: который представляет собой массив с другими числами и другой формой. Что я сделал не так? x .view (np.float64) .reshape (x.shape + (-1,)) но пока я этого не вижу. Как я могу преобразовать массив записей обратно в обычный ndarray? Предположим, у меня есть следующий простой структурированный массив: x = np ....
x = np.array([(1.0, 4.0,), (2.0, -1.0)], dtype=[('f0', '<f8'), ('f1', '<f8')])
array([[ 1., 4.],
[ 2., -1.]])
asarray
и astype
, но это не сработало. x .view (np.float64) .reshape (x.shape + (-1,)) но пока я этого не вижу. Как я могу преобразовать массив записей обратно в обычный ndarray? Предположим, у меня есть следующий простой структурированный массив: x = np ....
x = np.array([(1.0, 4.0,), (2.0, -1.0)], dtype=[('f0', '<f8'), ('f1', '<f8')])
array([[ 1., 4.],
[ 2., -1.]])
asarray
и astype
, но это не сработало. x .view (np.float64) .reshape (x.shape + (-1,)) не вижу сейчас.
x = np.array([(1.0, 4.0,), (2.0, -1.0)], dtype=[('f0', '<f8'), ('f1', '<f8')])
array([[ 1., 4.],
[ 2., -1.]])
asarray
и astype
, но это не сработало. x .view (np.float64) .reshape (x.shape + (-1,)) не вижу сейчас.
x = np.array([(1.0, 4.0,), (2.0, -1.0)], dtype=[('f0', '<f8'), ('f1', '<f8')])
array([[ 1., 4.],
[ 2., -1.]])
asarray
и astype
, но это не сработало. x .view (np.float64) .reshape (x.shape + (-1,))
), и с простым массивом работает отлично. Но с массивом, который я хотел преобразовать, он дает странный результат: data = np.array([ (0.014793682843446732, 0.006681123282760382, 0.0, 0.0, 0.0, 0.0008984912419691682, 0.0, 0.013475529849529266, 0.0, 0.0),
(0.014793682843446732, 0.006681123282760382, 0.0, 0.0, 0.0, 0.0008984912419691682, 0.0, 0.013475529849529266, 0.0, 0.0),
(0.014776384457945824, 0.006656022742390633, 0.0, 0.0, 0.0, 0.0008901208057068288, 0.0, 0.013350814580917358, 0.0, 0.0),
(0.011928378604352474, 0.002819152781739831, 0.0, 0.0, 0.0, 0.0012627150863409042, 0.0, 0.018906937912106514, 0.0, 0.0),
(0.011928378604352474, 0.002819152781739831, 0.0, 0.0, 0.0, 0.001259754877537489, 0.0, 0.01886274479329586, 0.0, 0.0),
(0.011969991959631443, 0.0028706740122288465, 0.0, 0.0, 0.0, 0.0007433745195157826, 0.0, 0.011164642870426178, 0.0, 0.0)],
dtype=[('a_soil', '<f4'), ('b_soil', '<f4'), ('Ea_V', '<f4'), ('Kcc', '<f4'), ('Koc', '<f4'), ('Lmax', '<f4'), ('malfarquhar', '<f4'), ('MRN', '<f4'), ('TCc', '<f4'), ('Vcmax_3', '<f4')])
data_array = data.view(np.float).reshape(data.shape + (-1,))
In [8]: data_array
Out[8]:
array([[ 2.28080997e-20, 0.00000000e+00, 2.78023241e-27,
6.24133580e-18, 0.00000000e+00],
[ 2.28080997e-20, 0.00000000e+00, 2.78023241e-27,
6.24133580e-18, 0.00000000e+00],
[ 2.21114197e-20, 0.00000000e+00, 2.55866881e-27,
5.79825816e-18, 0.00000000e+00],
[ 2.04776835e-23, 0.00000000e+00, 3.47457730e-26,
9.32782857e-17, 0.00000000e+00],
[ 2.04776835e-23, 0.00000000e+00, 3.41189244e-26,
9.20222417e-17, 0.00000000e+00],
[ 2.32706550e-23, 0.00000000e+00, 4.76375305e-28,
1.24257748e-18, 0.00000000e+00]])