首页 > 解决方案 > Python,ValueError:x 和 y 必须具有相同的第一维问题

问题描述

我试图读取 CSV 文件并绘制它,但是当我尝试绘制 y 变量时,它说该变量只有两个元素,而实际上应该是 6,代码如下:

import numpy as np
import csv

x = np.array([1,2,3,4,5,6])
y1=[]
y2=[]

with open('file.csv', 'r') as csvfile:
plots= csv.reader(csvfile, delimiter=',')
for row in plots:
    y1.append(int(row[1]))
print(len(y1))


with open('file.csv', 'r') as csvfile:
plots= csv.reader(csvfile, delimiter=',')
for row in plots:
    y2.append(int(row[2]))
print(len(y2))

这会产生 2,2,这是问题所在,它应该产生 6,6,因为两者都有 6 个元素?CSV 文件设置为以下格式:Dishwasher,1,1,1,1,1,1

洗衣机,1,1,0,1,1,0

标签: pythonnumpycsv

解决方案


它产生 2,2 因为 中有 2rowplots。本质上,您将第二列存储在 y1 中,将第三列存储在 y2 中。

如果这是您想要的,那么您的代码就可以了,如果您想测量行长,则可以使用以下代码:

import csv

with open('file.csv', 'r') as csvfile:
    plots = csv.reader(csvfile, delimiter=',')
    rows = [row for row in plots]
    print(len(rows[0]) - 1)  # -1 to exclude title
    print(len(rows[1]) - 1)

推荐阅读