簡體   English   中英

添加Numpy數組不成功

[英]Unsuccessful in Appending Numpy Arrays

我試圖遍歷CSV文件並為文件中的每一行創建一個numpy數組,其中第一列表示x坐標,第二列表示y坐標。 然后我試圖將每個數組附加到主數組並返回它。

import numpy as np 

thedoc = open("data.csv")
headers = thedoc.readline()


def generatingArray(thedoc):
    masterArray = np.array([])

    for numbers in thedoc: 
        editDocument = numbers.strip().split(",")
        x = editDocument[0]
        y = editDocument[1]
        createdArray = np.array((x, y))
        masterArray = np.append([createdArray])


    return masterArray


print(generatingArray(thedoc))

我希望看到一個包含所有CSV信息的數組。 相反,我收到一個錯誤:“append()缺少1個必需的位置參數:'values'非常感謝我的錯誤在哪里以及如何解決它的任何幫助!

Numpy數組並沒有像python列表那樣神奇地增長。 在添加所有內容之前,需要在“masterArray = np.array([])”函數調用中為數組分配空間。

最好的答案是使用genfromtxt( https://docs.scipy.org/doc/numpy-1.10.1/user/basics.io.genfromtxt.html )直接導入numpy數組,但......

如果你知道你正在閱讀的行數,或者你可以使用這樣的東西得到它。

file_length = len(open("data.csv").readlines())

然后你可以預先分配numpy數組來做這樣的事情:

masterArray = np.empty((file_length, 2))

for i, numbers in enumerate(thedoc): 
    editDocument = numbers.strip().split(",")
    x = editDocument[0]
    y = editDocument[1]
    masterArray[i] = [x, y]

我會推薦第一種方法但是如果你很懶,那么你總是可以構建一個python列表然后創建一個numpy數組。

masterArray = []

for numbers in thedoc: 
    editDocument = numbers.strip().split(",")
    x = editDocument[0]
    y = editDocument[1]
    createdArray = [x, y]
    masterArray.append(createdArray)

return np.array(masterArray)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM