ValueError: x and y must have same first dimension, but have shapes (0,) and (951424,)
使用Python画图的时候莫名其妙报错
列表里共有超过2000000组数据,作0-1000000组数据的图时程序正常运行,作1000001-2000000组数据的图时报错,经过测试发现,只能作前1048576组数据的图,但是可以提取出第1048576组后的数据,奇奇怪怪的报错增加了,可能与2^20=1048576有关,具体原因有待探究,稍后弄清楚后会补充。`
解决方案
本想将前1000000组数据直接在列表中删除,然后重新作图。后来发现删除后还是会报错。迷惑.jpg
现在发现一种解决方案,我的代码是先将txt文档中的数据储存到data列表里,然后通过np.array将list转换为narry。上段内容是在narry里删掉1000000组数据但是发现不可行,因此我直接在data里筛选数据,ok,问题解决
#原代码
with open("D:\\dyc\\资料\\数据\\dd.txt", "r") as f:
datas = f.read().splitlines()
f.close()
B = np.array(datas)
col2 = []
# 遍历数组 转化为float
for i in B:
'''
i[0:7]为第一列数据,i[9:15]为第二列数据,
i[17:23]为第三列数据,i[25:31]为第四列数据
'''
col2.append(float(i[0:7]))
print(len(col2))
del col2[0:1000000] #删除列表中前100w组数据
#现代码
with open("D:\\dyc\\资料\\数据\\dd.txt", "r") as f:
datas = f.read().splitlines()
f.close()
B = np.array(datas[1000001:2000001]) #直接在datas里提取数据
col2 = []
# 遍历数组 转化为float
for i in B:
'''
i[0:7]为第一列数据,i[9:15]为第二列数据,
i[17:23]为第三列数据,i[25:31]为第四列数据
'''
col2.append(float(i[0:7]))
print(len(col2))