我正在尝试将CSV数据集读取到二维numpy数组中,然后返回该数组。我继续收到不返回任何消息,并且不确定我对这个问题的处理方法-我是numpy的新手。
要清楚,数据集包含两列和大约100行数据。我想创建一个数组,其中的第一列数据为x坐标,第二列数据为y坐标。
import numpy as np
data = open("mydata.csv")
read = data.read()
def generatingArray(read):
for data in read:
dataPoints = np.array(read[0], read[1])
return dataPoints
print(generatingArray(dataFile))
当我调用该函数时,它返回“无”。玩弄return语句的放置通常会给我一条错误消息。任何有关如何调整我的代码的建议将不胜感激。
答案 0 :(得分:0)
第一件事是将变量名“ read”更改为其他名称。与内置方法/关键字共享变量名是一种不好的做法。
X=[]
Y=[]
with open('mydata.csv','r') as f:
#opens file for reading
for line in f:#this reads a line
a,b=line.split()
X.append(a)
Y.append(b)
#appends first element to listX second to Y
必须阅读一行时使用with-open。
由于一行具有两个以空格分隔的值,因此您可以将其拆分并提取两个值,并将其附加到包含X和Y坐标的X和Y列表中。现在,如果您想拥有一个numpy数组,请使用以下命令:
ar=np.array([X,Y])
[X,Y]是2Dlist,no.array将列表转换为numpy数组。