我有一个非常大的binary
文件。它的形状是(1000,20000,20000)。我需要计算np.nanmean(axis=0)
。
如何计算沿轴0的平均值?
我尽力了。
indata = np.memmap(file, mode='r', shape=(10000, 20000, 20000), dtype=np.float32)
它读起来是正确的。
然后,尝试nanmean
计算:
result = np.nanmean(indata,axis=0)
它不适合内存,由于内存错误,shell被重新启动
1条答案
按热度按时间qgelzfjb1#
让我们来看看保存和阅读Numpy数组的两种不同方式:
.NPY
文件,带有描述dtype
和形状的标头现在,我们首先将该数组保存为纯的、无标题的二进制数据,然后保存为
.NPY
文件:首先要注意的是
data.bin
正好是800字节,即每个8字节的100个浮点数。另一方面,data.npy
是928字节,因为它有一个描述数组形状和dtype的头。现在我们可以读取二进制文件,注意我们必须指定形状和dtype,因为没有头:
现在我们可以读取
.NPY
文件,注意我们不需要指定形状和dtype,因为它在头文件中:现在你可以计算你的平均值: