首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >连接不同形状的数组

连接不同形状的数组
EN

Stack Overflow用户
提问于 2019-05-16 02:37:52
回答 1查看 616关注 0票数 0

给定不同维数的numpy数组,我想将它们连接起来。显然,这是一个相当常见的问题,但我找到的答案似乎与我的问题不匹配。

在一个小例子上尝试了几种不同的方法后,我仍然无法使其工作。我已经调查过Concat two arrays of different dimensions numpyHow to unnest a nested list [duplicate]了。我还尝试了添加和展平它。

代码语言:javascript
运行
复制
import numpy as np

a = np.arange(9)
a = a.reshape((3,3))
b = []
b.append(a[0,:])
b.append(a[1,1:2])
b.append(a[2,2])
b = np.asarray(b).flatten()
print(b) # [array([0, 1, 2]) array([4]) 8]

总而言之,我总是收到一些错误消息,指出尺寸不匹配或类似的东西。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-05-16 02:46:36

因此,b是一个列表-包含(3,)和(1,)数组,以及标量(0d,()):

代码语言:javascript
运行
复制
In [76]: a=np.arange(9).reshape(3,3)                                            
In [77]: b = [a[0,:], a[1,1:2],a[2,2]]                                          
In [78]: b                                                                      
Out[78]: [array([0, 1, 2]), array([4]), 8]

但是你想要什么样的组合呢?

如果最后一项是数组(或列表),我们可以连接:

代码语言:javascript
运行
复制
In [79]: b = [a[0,:], a[1,1:2],[a[2,2]]]                                        
In [80]: b                                                                      
Out[80]: [array([0, 1, 2]), array([4]), [8]]
In [81]: np.concatenate(b)                                                      
Out[81]: array([0, 1, 2, 4, 8])

hstackconcatenate的封面,它确保所有元素至少是一维的:

代码语言:javascript
运行
复制
In [82]: b = [a[0,:], a[1,1:2],a[2,2]]                                          
In [83]: np.hstack(b)                                                           
Out[83]: array([0, 1, 2, 4, 8])
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56155740

复制
相关文章

相似问题

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