AttributeError: 'numpy.ndarray'对象没有'append'属性
我正在尝试运行第二页上提供的代码:
在代码的底部,你需要添加这些行:
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'
我哪里做错了,导致出现最后这个错误?
4 个回答
1
我在程序中修改了一个循环后遇到了这个错误,我们来看一下:
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)
...
实际上,我在外部循环里重复使用了变量,但忘记在里面重置它们,就像John Lyon的评论说的那样:
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()或者类似的东西。
3
简单来说,numpy数组是不能直接使用append()
这个方法的。如果我们查看一下文档,会发现需要用np.append(array)
,这里的array
就是你想要添加的值。
import numpy as np
arr = np.array([1,2,3,47,1,0,2])
np.append(arr, 4)
61
可以使用 numpy.concatenate(list1 , list2)
或者 numpy.append()
来合并数组。想了解更多,可以查看这个讨论:将一个NumPy数组添加到另一个NumPy数组。