Python 将列表追加到numpy数组

Python 将列表追加到numpy数组,python,arrays,numpy,csv,Python,Arrays,Numpy,Csv,我有一个(可能)非常愚蠢的问题。我正在尝试使用numpy创建一个数组,其中包含来自csv文件的数据。我希望csv文件中的每一行和每一列都是numpy数组中唯一的行和列。为此,我使用CSV模块读取数据,并尝试使用for循环将其附加到我的numpy数组中。我不能让它工作。 (csv文件正在使用字符串) 上面是不起作用的代码。(注意,我尝试过使用各种初始化模型的方法,如numpy.full,但这些方法仍然不起作用)您可以尝试np.append: import csv import numpy as n

我有一个(可能)非常愚蠢的问题。我正在尝试使用numpy创建一个数组,其中包含来自csv文件的数据。我希望csv文件中的每一行和每一列都是numpy数组中唯一的行和列。为此,我使用CSV模块读取数据,并尝试使用for循环将其附加到我的numpy数组中。我不能让它工作。 (csv文件正在使用字符串)


上面是不起作用的代码。(注意,我尝试过使用各种初始化模型的方法,如numpy.full,但这些方法仍然不起作用)

您可以尝试
np.append

import csv
import numpy as np

f = open('data.csv')
csv_file = csv.reader(f)

arr = np.zeros((121, 30))
rotations = 0
x = 0

for row in csv_file:
   arr = np.append(arr,row)


f.close()

看起来您已经知道需要多少行和列,所以只需要将行的内容切片到数组中

让我们使用上下文管理器和
enumerate()
,为您的代码增添趣味


只要csv文件的每一行有30个元素(这是您指定为NumPy数组维度的元素),代码就应该可以工作,即使这些行的值是字符串。另一方面,通过使用Pandas(在后台使用NumPy数组),您可以更简单地读取csv数据。比如说,

import pandas as pd

df = pd.read_csv("data.csv")
arr = df.to_numpy() # This turns a Pandas dataframe to a NumPy array.

是否尝试使用?将行附加到列表中。这样更容易、更快。然后从列表列表中创建数组。@Theodor,不要推荐
np.append
您会得到什么错误?“不工作”是描述问题的一种不恰当的方式。你会犯什么错误?“不起作用”是描述问题的一种不恰当的方式。
with open('data.csv', 'r') as f:
    csv_file = csv.reader(f)

    for i, row in enumerate(csv_file):
        arr[i,:] = row[:]
    
import pandas as pd

df = pd.read_csv("data.csv")
arr = df.to_numpy() # This turns a Pandas dataframe to a NumPy array.