首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >`numpy.hstack`的标识元素

`numpy.hstack`的标识元素
EN

Stack Overflow用户
提问于 2013-06-05 13:39:46
回答 2查看 5.9K关注 0票数 0

我如何创建一个空数组,然后我可以用另一个数组填充hstack来填充值?

例如,在Matlab中,我可以做以下工作:

代码语言:javascript
复制
a = [];
b = [10 20];
a = [a b];

并且会得到

代码语言:javascript
复制
a = 

      10    20

我在找类似的东西。我试过了

代码语言:javascript
复制
a = np.array([]);
b = np.array([10, 20]);
a = np.hstack((a, b)); # should be equal to `b`

但这给了

ValueError:除级联轴外的所有输入数组尺寸必须完全匹配

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-06-05 14:14:20

np.array([])hstack结合使用对我来说是件好事。

代码语言:javascript
复制
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):

代码语言:javascript
复制
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,然后当ahstacked或vstacked与b一起使用时,结果将被向上转换为浮动。

票数 2
EN

Stack Overflow用户

发布于 2013-06-05 13:44:28

您可以resize a的维度来匹配bshape并填充缺少的值。这将改变a的大小,并用默认值填充它,对于np.floats,这是0.0

代码语言:javascript
复制
a = np.array([])
b = np.array([10, 20])
a.resize(b.shape)

np.hstack((a, b))
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16941508

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档