AttributeError:'numpy.ndarray'对象没有属性'append'

时间:2011-12-07 01:58:13

标签: python matplotlib

我正在尝试运行第二页上显示的代码:

http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-00-introduction-to-computer-science-and-programming-fall-2008/video-lectures/lecture-20/lec20.pdf

在代码的底部,您必须添加以下行:

simFlips(100,100)

show()

以下是我在ubuntu上运行时出现的错误:

Traceback (most recent call last):
  File "coin.py", line 36, in <module>
    simFlips(100,100)
  File "coin.py", line 16, in simFlips
    diffs.append(abs(heads - tails))
AttributeError: 'numpy.ndarray' object has no attribute 'append'

请告诉我我做错了什么给了我最后一个错误。提前谢谢!

2 个答案:

答案 0 :(得分:23)

使用numpy.concatenate(list1 , list2)numpy.append() 查看Append a NumPy array to a NumPy array处的帖子。

答案 1 :(得分:0)

更改程序中的循环后出现此错误,让我们看看:

for ...
  for ... 
     x_batch.append(one_hot(int_word, vocab_size))
     y_batch.append(one_hot(int_nb, vocab_size, value))
  ...
  ...
  if ...
        x_batch = np.asarray(x_batch)
        y_batch = np.asarray(y_batch)
...

事实上,我在重用变量,却忘记在外部循环中重置它们,就像约翰·里昂的评论一样:

for ...
  x_batch = []
  y_batch = []
  for ... 
     x_batch.append(one_hot(int_word, vocab_size))
     y_batch.append(one_hot(int_nb, vocab_size, value))
  ...
  ...
  if ...
        x_batch = np.asarray(x_batch)
        y_batch = np.asarray(y_batch)
...

然后,检查您是否正在使用np.asarray()或类似的东西。