Python代码没有运行
我和你一起工作。以身作则Python代码没有运行,python,python-2.7,numpy,Python,Python 2.7,Numpy,我和你一起工作。以身作则 import csv as csv import numpy as np csv_file_object = csv.reader(open('train.csv', 'rb')) header = csv_file_object.next() data = [] for row in csv_file_object: data.append(row) data = np.array(data) 我遇到了以下错误: 回溯(最近一次呼叫最后一次): 文件“
import csv as csv
import numpy as np
csv_file_object = csv.reader(open('train.csv', 'rb'))
header = csv_file_object.next()
data = []
for row in csv_file_object:
data.append(row)
data = np.array(data)
我遇到了以下错误:
回溯(最近一次呼叫最后一次):
文件“C:/Users/Prashant/Desktop/data mining/demo.py”,第7行
在模块数据中追加(行)
AttributeError:'numpy.ndarray'对象没有属性'append'
我在谷歌上搜索了这个问题,并在
append
上找到了它,但我什么也没有得到。好吧,看看你问的另一个问题的链接,它看起来像numpy。ndarray
没有名为append
的属性,但看起来像是numpy
因此,请使用:
numpy.append()
或者您可以尝试连接
查看堆栈溢出问题。检查缩进。如果for循环中有
data=np.array(data)
(即缩进量与data.append(row)
)相同),则在将项目追加到列表之前,将data
转换为Numpy数组
这将导致您看到的错误,因为列表有一个append()
方法,而numpy数组没有。您的for循环应该类似于
data = [] # Make data a list
for row in csv_file_object: #iterate through rows in the csv and append them to the list
data.append(row)
# Turn the list into an array. Notice this is NOT indented! If it is, the data
# list will be overwritten!
data = np.array(data)
查看有关缩进在Python中如何工作的更广泛的解释。请查看以下位置的示例: Python是。也就是说,缩进级别将决定for循环的主体,并且根据Grinner的注释: 您的data=np.array(data)行是在循环中还是在循环外存在巨大差异 话虽如此,但以下内容应说明其区别:
>>> import numpy as np
>>> data = []
>>> for i in range(5):
... data.append(i)
...
>>> data = np.array(data) # re-assign data after the loop
>>> print data
array([0, 1, 2, 3, 4])
vs
>>数据=[]
>>>对于范围(5)中的i:
... 数据追加(一)
... data=np.数组(data)#在循环中重新分配数据
...
回溯(最近一次呼叫最后一次):
文件“”,第2行,在
AttributeError:'numpy.ndarray'对象没有属性'append'
顺便说一句,我怀疑你明显遵循的教程的质量是否适合于该死的Python初学者。
我认为这本更基础的(官方)教程应该更适合于对该语言进行快速的第一次概述:1。检查缩进-Python对空格敏感。您的
data=np.array(data)
行是在循环中还是在循环外有很大的区别。2.您链接的问题的答案是否没有帮助?“没有得到任何东西”是什么意思?您是否将其更改为示例代码的缩进显然是错误的。您是否缩进了data.append(row)
以及data=np.array(data)
?从你的错误判断,我想是的。请不要这样做b/c您将从以前的列表创建一个数组;数组实际上没有。append
@namit请小心编辑Python代码示例中的缩进-在这种情况下,错误意味着您的编辑不正确。@grinner:实际上我是Python新手,不理解其中给出的答案,这行数据=np.array(data)我需要将一个列表转换为数组,并在谷歌上搜索它,找到了与我使用过的相同的代码,但不知道为什么会出现错误。现在我终于明白了:)
>>> import numpy as np
>>> data = []
>>> for i in range(5):
... data.append(i)
...
>>> data = np.array(data) # re-assign data after the loop
>>> print data
array([0, 1, 2, 3, 4])
>>> data = []
>>> for i in range(5):
... data.append(i)
... data = np.array(data) # re-assign data within the loop
...
Traceback (most recent call last):
File "<stdin>", line 2, in <module>
AttributeError: 'numpy.ndarray' object has no attribute 'append'