【问题标题】:Reading a CSV File into a numpy array returning none将 CSV 文件读入 numpy 数组,返回无
【发布时间】:2019-04-01 14:48:29
【问题描述】:

我正在尝试将 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 语句的位置通常会给我一条错误消息。任何有关如何调整我的代码的建议将不胜感激。

【问题讨论】:

  • 当您尝试打印 generatingP-object 调用时,您的函数名为 generatingArray()。所以如果你想打印你的函数的输出,它应该是print(generatingArray(datafile))。虽然您的代码中也没有指定dataFile...

标签: python numpy


【解决方案1】:

首先是将变量名称“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] 是一个二维列表,no.array 将列表转换为 numpy 数组。

【讨论】:

    猜你喜欢
    • 2019-08-24
    • 1970-01-01
    • 1970-01-01
    • 2023-03-31
    • 2011-05-16
    • 2018-03-25
    • 2017-12-23
    • 2019-09-22
    • 1970-01-01
    相关资源
    最近更新 更多