向numpy数组添加行:'numpy.ndarray'对象没有'append'或'vstack'属性
我有一个二维的numpy数组,我想在它的末尾添加一些行。
我试过用 append
和 vstack
,但是无论哪种方法,我都遇到了错误,像是:
'numpy.ndarray' object has no attribute 'vstack'
或者它提示说没有 append
这个属性...
这是我的代码:
g = np.zeros([m, no_features])
# then somewhere in the middle of a for-loop I build a new array called temp_g
# and try to append it to g. temp_g is a 2D array
g.vstack((temp_g,g))
我用 g.append(temp_g)
试过,但没有任何变化,还是出现同样的错误,说没有这个属性。
我最开始声明数组 g
的方式是不是有什么问题?
2 个回答
1
vstack是一个numpy库里的函数,它只需要一个参数,这个参数是一个元组。你需要调用这个函数,然后把它的结果赋值给你的变量。所以,不要这样写:
g.vstack((temp_g,g))
而是应该这样写:
g=np.vstack((temp_g,g))
9
>>> import numpy as np
>>> a = np.array([1, 2, 3])
>>> b = np.array([5, 6, 7])
>>> np.vstack(a, b)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: vstack() takes exactly 1 argument (2 given)
>>>
>>> np.vstack((a, b))
array([[1, 2, 3],
[5, 6, 7]])
当然可以!请把你想要翻译的内容发给我,我会帮你用简单易懂的语言解释清楚。