切片数组时出现内存错误

时间:2012-12-17 13:46:43

标签: python numpy

我将对象d连接到h5数据集:

>>> data = d[:, :, 0].astype(np.float32)
>>> data.shape
(17201, 10801)
>>> data[data==-32768] = data[data>0].min()
Traceback (most recent call last):
  File "<interactive input>", line 1, in <module>
MemoryError

我可以做一些其他的切片技巧来避免这个错误吗?

1 个答案:

答案 0 :(得分:2)

好的,我正在写自己的答案,因为在@mgilson质疑数据类型后获得了可接受的解决方案。

如果数据允许,在阵列上操作时使用更简单的数据类型可以避免内存错误。考虑到最初的问题,这对我有用:

>>> data = d[:, :, 0].astype(np.short)
>>> data[data==-32768] = data[data>0].min()
>>> data = data.astype(np.float32)