CN海棠依旧 2021-04-02 22:37 采纳率: 50%
浏览 360
已结题

Python报错MemoryError: 如何解决?

我把一个一维数据转化为二维数据时出错,报错内容为:

Traceback (most recent call last):
  File "G:\Data_dispose\Text_1.py", line 13, in <module>
    a_1.resize(720, 360)
MemoryError: cannot allocate memory for array

代码为:(好多#号因为想先试处理第一个)

import numpy as np

fl1 = 'G:\\Data_dispose\\CC_CRU_tmp_AVE_1950-1978.txt'
# fl2 = 'G:\\Data_dispose\\CC_CRU_tmp_VAR_1950-1978.txt'
# fl3 = 'G:\\Data_dispose\\CC_CRU_tmp_AVE_1979-2019.txt'
# fl4 = 'G:\\Data_dispose\\CC_CRU_tmp_VAR_1979-2019.txt'
a = open(fl1, 'r')
# b = open(fl2, 'r')
# c = open(fl3, 'r')
# d = open(fl4, 'r')

a_1 = np.array(a.readline())
a_1.resize(720, 360)
print(a_1)

所调用的数据是一个由259200float类型组成的一维数据(链接:https://pan.baidu.com/s/192ItUea6u6EIMfNhi-uYfQ  提取码:4jgc ),求问大佬们如何解决?

  • 写回答

3条回答 默认 最新

  • 天元浪子 优质创作者: python技术领域 2021-04-02 23:15
    关注

    open一个文本文件,readline()函数只是读出了第一行,返回的是一个字符串,第12行并不能得到一个浮点型的数组对象。题主没有提供文本文件的格式,只能靠猜测。如果文件是分行的,应该使用readlines()读出全部行,遍历每一行并切片;如果文件不分行,则使用read()函数读出全部内容后切片。对每一个切片转为浮点数,生成一个列表后再转为数组。

    评论

报告相同问题?