【问题标题】:Appending array to a larger one and then returning it将数组附加到一个更大的数组,然后返回它
【发布时间】:2019-08-26 17:00:27
【问题描述】:

我的目标是创建一个将 CSV 文件作为输入的函数。从该 CSV 文件中,我希望它创建一个数组,其中第一列中的数据是 x 坐标,第二列中的数据是 y 坐标。对于数据文件中的每一行,我希望它将数据添加到数组中。

import numpy as np 

doc = open("d.csv")
headers = doc.readline()


def generateArray(doc):

    for theData in doc: 
        editDocument = theData.strip().split(",")
        x = splitDocument[0]
        y = splitDocument[1]
        createArray = np.array((x, y))
    return createArray 


print(generateArray(doc))

当我返回它时,它只是返回 CSV 文件的最后一行,而实际上我希望创建的所有数组都返回。我使用过的函数(如 .append())给我一个错误,提示“无法在 0 维数组上使用附加”。关于如何编辑代码以提供返回数组的任何建议。

【问题讨论】:

  • 收集列表中的值,并从中创建数组。

标签: python numpy


【解决方案1】:

作为一种快速(就更改代码而言)解决方案,请使用生成器:

def generateArray(doc):
    for theData in doc: 
        editDocument = theData.strip().split(",")
        x = splitDocument[0]
        y = splitDocument[1]
        createArray = [x, y]
        yield createArray

arr = np.array(list(generateArray(doc)))
print(arr)

作为更好的解决方案,我建议您检查如何使用np.loadtxt

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-12-11
    • 1970-01-01
    • 2017-08-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多