在循环中创建一个numpy数组

时间:2019-02-19 12:08:12

标签: python arrays numpy

我想通过解析.txt文件来创建一个numpy数组。 .txt文件包含以逗号分隔的鸢尾花的功能。每行都有一个花示例,其中5个数据用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文档,但听不懂。

1 个答案:

答案 0 :(得分:2)

尽管注释中的人是对的,因为您不会在任何地方持久存储数据,但是我认为您的问题是不正确的np.array构造。您应该将所有参数包含在这样的列表中:

feature_table = np.array([currentline[0],currentline[3],currentline[4]])

并删除参数周围多余的[]

有关更多示例,请参见official documentation。基本上,所有输入数据都需要分组/分隔为仅一个参数,因为Python会将其他参数作为不同的位置参数。