我如何创建一个空数组,然后我可以用另一个数组填充hstack来填充值?
例如,在Matlab中,我可以做以下工作:
a = [];
b = [10 20];
a = [a b];并且会得到
a =
10 20我在找类似的东西。我试过了
a = np.array([]);
b = np.array([10, 20]);
a = np.hstack((a, b)); # should be equal to `b`但这给了
ValueError:除级联轴外的所有输入数组尺寸必须完全匹配
发布于 2013-06-05 14:14:20
将np.array([])与hstack结合使用对我来说是件好事。
In [11]: a = array([], dtype=int)
In [12]: b = array([10, 20])
In [13]: c = array([30, 40])
In [14]: a = hstack((a,b))
In [15]: a
Out[15]: array([10, 20])
In [16]: a = hstack((a,c))
In [17]: a
Out[17]: array([10, 20, 30, 40])对于vstack,需要对初始a的形状进行一些调整,使其具有形状(0,2):
In [22]: a = array([], dtype=int).reshape(-1,2)
In [23]: a
Out[23]: array([], shape=(0, 2), dtype=int64)
In [24]: b
Out[24]: array([10, 20])
In [25]: c
Out[25]: array([30, 40])
In [26]: a = vstack((a,b))
In [27]: a
Out[27]: array([[10, 20]])
In [28]: a = vstack((a,c))
In [29]: a
Out[29]:
array([[10, 20],
[30, 40]])注意,我在创建dtype=int的初始值时使用了a。如果没有这一点,它将使用默认的float dtype,然后当a被hstacked或vstacked与b一起使用时,结果将被向上转换为浮动。
发布于 2013-06-05 13:44:28
您可以resize a的维度来匹配b的shape并填充缺少的值。这将改变a的大小,并用默认值填充它,对于np.floats,这是0.0
a = np.array([])
b = np.array([10, 20])
a.resize(b.shape)
np.hstack((a, b))https://stackoverflow.com/questions/16941508
复制相似问题