Numpy 发行附加ndarray和#x27;不同形状的玩具
我有一个带有shape(25,2)的numpyNumpy 发行附加ndarray和#x27;不同形状的玩具,numpy,numpy-ndarray,Numpy,Numpy Ndarray,我有一个带有shape(25,2)的numpyndarray,我正试图附加一个具有shape(2,)的值 我尝试过使用append方法,但到目前为止没有成功 有什么想法吗? 谢谢 对于以这种方式附加到工作,您需要满足中指定的两个条件 附加的对象必须具有相同的维度。它的形状应该是(1,2) 必须指定要连接的轴,否则numpy将展平阵列 例如: import numpy x = numpy.ones((3, 2)) y = [[1, 2]] numpy.append(x, y, axis=0) 结
ndarray
,我正试图附加一个具有shape(2,)的值
我尝试过使用append
方法,但到目前为止没有成功
有什么想法吗?
谢谢 对于以这种方式附加到工作,您需要满足中指定的两个条件
(1,2)
import numpy
x = numpy.ones((3, 2))
y = [[1, 2]]
numpy.append(x, y, axis=0)
结果:
array([[ 1., 1.],
[ 1., 1.],
[ 1., 1.],
[ 1., 2.]])
使用
append方法
,您遇到了什么样的错误“运气不好”和“没用”一样是个糟糕的形容词。在适当的问题中,您应该显示预期值以及错误。然而,这个话题经常出现,我们可以做出很好的猜测
In [336]: a = np.ones((3,2),int)
In [337]: b = np.zeros((2,),int)
但首先我要学究式地尝试一种附加方法
:
In [338]: a.append(b)
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
<ipython-input-338-d6231792f85d> in <module>()
----> 1 a.append(b)
AttributeError: 'numpy.ndarray' object has no attribute 'append'
在某种程度上,这是有效的。但如果我阅读文档并提供axis参数:
In [341]: np.append(a,b, axis=0)
...
-> 5166 return concatenate((arr, values), axis=axis)
ValueError: all the input arrays must have same number of dimensions
现在它只是调用np.concatenate
,将这两个参数变成一个列表
如果这是您遇到的错误,并且不理解它,您可能需要查看有关尺寸和形状的基本numpy文档
a
是2d,b
是1d。为了连接,我们需要重塑b
,使其成为(1,2)
,一种与a
的(3,2)相兼容的形状。有几种方法可以做到这一点:
In [342]: np.concatenate((a, b.reshape(1,2)), axis=0)
Out[342]:
array([[1, 1],
[1, 1],
[1, 1],
[0, 0]])
远离
np.append
;对于许多初学者来说,它太让人困惑了,并且没有给基础添加任何有意义的内容concatenate
您可以使用np.vstack
。它不能正常工作,所以您必须重新分配:a=np.vstack([a,b])
谢谢!!!“np.连接((a,b.重塑(1,2)),轴=0)”是完美的!
In [342]: np.concatenate((a, b.reshape(1,2)), axis=0)
Out[342]:
array([[1, 1],
[1, 1],
[1, 1],
[0, 0]])