向numpy数组添加行:'numpy.ndarray'对象没有'append'或'vstack'属性

0 投票
2 回答
11236 浏览
提问于 2025-04-18 04:45

我有一个二维的numpy数组,我想在它的末尾添加一些行。

我试过用 appendvstack,但是无论哪种方法,我都遇到了错误,像是:

'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]])

当然可以!请把你想要翻译的内容发给我,我会帮你用简单易懂的语言解释清楚。

撰写回答