我有一个大小为 13000*300000 的数组,其中填充了从 0 到 255 的整数。我想将它们的数据类型从整数更改为浮点,就好像数据是 numpy 数组一样:
data.astype('float')
当将其数据类型从整数更改为浮点时,它显示内存错误。我有 80 GB 内存。仍然显示内存错误。您能告诉我这可能是什么原因吗?
这里的问题是数据很大(大约30GB)顺序的数据,参见numpy 数组有多少内存? https://stackoverflow.com/questions/11253443/how-much-memory-in-numpy-array-is-ram-a-limiting-factor),因此在尝试将其装入内存时会导致错误。不要整体进行操作,而是对其进行切片,然后进行操作,然后合并,例如:
n = 300000
d1 = data[:, :n/2].astype('float')
d2 = data[:, n/2:].astype('float')
data = np.hstack(d1, d2)
一般来说,由于您的数据大小非常难以处理,请考虑将其部分使用,以避免一直受到此类问题的困扰(请参阅使用大型 Numpy 数组的技术? https://stackoverflow.com/questions/14351255/techniques-for-working-with-large-numpy-arrays对于此技术和其他技术)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)