У меня есть данные в одной большой матрице, и я хочу привести их к специальному типу dtype.Как я могу сделать это, не нарушая понимания по умолчанию (это очень медленно).Вот глупый способ сделать это:
dt = np.dtype([
('id', np.uint32, 1),
('val', np.float64, 2)])
untyped = np.array([[1,1.1,1.11], [2, 2.2,2.22]])
typed = np.array([(x[0], (x[1:])) for x in untyped], dtype=dt)
assert typed.shape==(2,)
assert typed.dtype==dt
Спасибо!
Редактировать: лучше, но все же не так элегантно, как хотелось бы:
typed = np.zeros(len(untyped),dtype=dt)
typed['id'] = untyped[0]
typed['val'][:,0] = untyped[1]
typed['val'][:,1] = untyped[2]