Python 在循环中创建numpy数组

Python 在循环中创建numpy数组,python,arrays,numpy,Python,Arrays,Numpy,我想通过解析一个.txt文件来创建一个numpy数组。txt文件包含以逗号分隔的鸢尾花特征。每行有一个花示例,其中5个数据用4个逗号分隔。前4个数字是功能,最后一个是名称。我在一个循环中解析.txt,并希望(可能使用numpy.append)将解析数据的每一行追加到一个名为feature_table的numpy数组中 这是代码 import numpy as np iris_data = open("iris_data.txt", "r") for line in iris_data:

我想通过解析一个.txt文件来创建一个numpy数组。txt文件包含以逗号分隔的鸢尾花特征。每行有一个花示例,其中5个数据用4个逗号分隔。前4个数字是功能,最后一个是名称。我在一个循环中解析.txt,并希望(可能使用numpy.append)将解析数据的每一行追加到一个名为feature_table的numpy数组中

这是代码

import numpy as np
iris_data = open("iris_data.txt", "r")
for line in iris_data:
    currentline = line.split(",")
    #iris_data_parsed = (currentline[0] + " , " + currentline[3] + " , " + currentline[4])
    #sepal_length = numpy.array(currentline[0])
    #petal_width = numpy.array(currentline[3])
    #iris_names = numpy.array(currentline[4])
    feature_table = np.array([currentline[0]],[currentline[3]],[currentline[4]])
    print (feature_table)
    print(feature_table.shape)
所以我想创建一个numpy数组,在每行中只使用第一、第四和第五个数据
但我不能让它像我想的那样工作。尝试阅读numpy文档,但无法理解。

虽然评论中的人说您没有将数据持久化到任何地方是正确的,但我认为您的问题是np.array构造不正确。您应该将所有参数包含在如下列表中:

feature_table = np.array([currentline[0],currentline[3],currentline[4]])
并消除围绕参数的冗余
[
]


有关更多示例,请参见。基本上所有的输入数据都需要被分组/分离为只有1个参数,因为Python将把其他的争论看作是不同的位置参数。

可能的重复你连续重写同一个变量,所以你得到一个只有3个元素的数组。您最好使用
numpy.loadtxt
、pandas(它有一个
read_sv()
函数,可以将整个文件读入一个表a.k.a.Dataframe),甚至使用scikit learn,它在很多示例中使用iris数据集。@9769953您是对的,但我甚至没有得到一个包含3个元素的数组,我得到ValueError:只接受2个非关键字参数。由@Alexander Rossa提供的答案修复了这个问题。现在我只需要在循环外创建一个numpy数组,并在每行更新它。谢谢你迅速的回答。现在我只需要在循环外创建一个numpy数组,并在每行更新它。