【发布时间】:2016-10-10 00:27:12
【问题描述】:
我已经分配了大约 34G 的内存并读取了数据: sst = np.empty([365,3600,7200], dtype-np.float32)
使用 argmax(sst,axis=0) 获取每个像素的最大值的索引。
运行程序时出现内存错误问题。
谁能帮我解决这个问题?还有其他方法可以获取每个像素 [365,3600,7200] 的最大值的索引吗?谢谢!
【问题讨论】:
-
我认为您的错误来自您尝试分配如此庞大的数组。我认为您的系统没有足够的内存来执行此类操作。
-
我总共得到了 64G 的内存。我试图保持第一步分配[365,3600,7200]。说到第二步,我尝试了半年每个像素的最大值索引argmax(sst[:183],axis=0)。程序这次有效。但我想获得全年每个像素的索引。 :(
-
我需要保留原始索引,因为我需要知道每个像素的最大值来自哪一天。你能帮帮我吗?
-
通常,人们会尝试限制内存的使用。当您将代码移动到另一台内存有限的计算机时,这很有用。我认为,最好循环几天,每个都得到每天照片中最大值的索引。将最大值及其位置存储在列表中。最后,您有一个包含 356 个元素的列表,每个元素的形式为 (index, max)。这可以很容易地搜索到最大值的最大值。
-
感谢您的建议。