我有像这样的大型结构化 numpy 数组:
array([(-0.85694593, -6.3997216, -1.5486323 , 37, 50, 0, 0),
(-1.1892447 , -11.417209 , -0.21771915, 97, 50, 0, 0),
(-0.84541476, -11.3712845, -0.8726147 , 75, 50, 0, 0), ...,
(-0.057407 , -6.266104 , 1.6693828 , 19, 0, 16, 63),
( 0.56391037, -11.262503 , 0.31594068, 0, 0, 150, 63),
( 0.9118347 , -11.4296665, -0.3372402 , 96, 0, 0, 0)],
dtype=[('x', '<f4'), ('y', '<f4'), ('z', '<f4'), ('intensity', 'u1'), ('timestamp', 'u1'), ('m', 'u1'), ('_', 'u1')])
请注意,第 0 至 2 列是浮点数,第 3 至 6 列是整数。
我想有效地将这个数组转换为二维浮点数组。我该如何执行此操作?
这是一种方法,它至少应该具有内存效率,而且不会太慢:
result = np.empty((arr.shape[0], len(arr.dtype.fields)), np.float32
for i, field in enumerate(arr.dtype.fields):
result[:, i] = arr[field]
我假设你想要
np.float32
作为结果数组。