将numpy转换为无显式循环的类型

时间:2019-03-03 12:37:46

标签: python numpy types

我将数据放在一个大矩阵中,并且想要转换为特殊的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]

0 个答案:

没有答案