У меня есть массив записей, подобный этому
============ rec_data
<type 'numpy.ndarray'>
[(269.05515748, 24.71801578) (276.96505874, 21.72957922)
(198.32475308, 19.26596641) ... (158.11078724, -49.91437661)
(219.79342843, -62.06756014) ( 69.92358315, -166.19385119)]
('rec_data ndim: ', 1)
(' size: ', 206705)
(' shape: ', (206705,))
(' dtype: ', dtype([('x', '<f8'), ('y', '<f8')]))
, и я изменяю его на неструктурированный массив с функцией
arr_data = root_numpy.rec2array(rec_data)
, так что теперь он выглядит следующим образом
============ arr_data
<type 'numpy.ndarray'>
[[ 269.05515748 24.71801578]
[ 276.96505874 21.72957922]
[ 198.32475308 19.26596641]
...
[ 158.11078724 -49.91437661]
[ 219.79342843 -62.06756014]
[ 69.92358315 -166.19385119]]
('arr_data ndim: ', 2)
(' size: ', 413410)
(' shape: ', (206705, 2))
(' dtype: ', dtype('float64'))
Как я могу преобразовать 'new_data' обратно в массив записей точно такого же формата, как rec_data?
Извинения, если мои обозначения и / или терминология неверны в некоторых случаях, так как я все еще относительно новичок вNumPy массивов.
Я пробовал
new_rec = np.array(new_data, dtype=rec_data.dtype)
и
new_rec = np.array(new_data, dtype=[('x', np.float64), ('y', np.float64)])
, но ни один из них не делает то, что я хочу. Какие бы самые элегантные решения, не могли бы вы помочь?