ValueError: x and y must have same first dimension, but have shapes (0,) and (951424,)

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))

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值