Numpy:指定 `astype` 输出缓冲区

问题描述 投票:0回答:0

我正在尝试将文件中的 8 位整数值读取到

numpy
数组中,并将它们转换为 32 位浮点数。我真的需要将这些32位浮点数写入特定的内存缓冲区(我正在使用共享内存进行多处理)。我试图弄清楚是否有一种方法可以直接将类型转换为 32 位浮点数的预分配缓冲区,而无需创建临时数组。

例如,如果有一个带有输出参数的

astype
方法,例如:


num_samples = 100
raw_buffer = bytearray(num_samples)
with open(filepath, 'rb') as f:
    f.readinto(raw_buffer)
int_array = np.frombuffer(raw_buffer, dtype=np.int8)

float_buffer = bytearray(num_samples * 4)

int_array.astype(np.float32, out=float_buffer)

有没有办法做这样的事情?

arrays numpy buffer dtype
© www.soinside.com 2019 - 2024. All rights reserved.