繁体   English   中英

连接矩阵中每个 Numpy 数组的索引

[英]Concatenate indices of each Numpy Array in a Matrix

所以我有一个 Numpy 数组,里面有一堆 numpy arrays。 我想根据它们各自数组中的 position 对它们进行分组。

例如:如果矩阵是:

[[1, 2], [2, 3], [4, 5], [6, 7]]

然后代码应该返回:

[[1, 2, 4, 6], [2, 3, 5, 7]]

这是因为1, 2, 4, 6都是它们各自 arrays 中的第一个元素,而2, 3, 5, 7是它们各自 arrays 中的第二个元素。

任何人都知道一些可以做到这一点的 function。 谢谢。

在 Python 中回答。

使用numpy 转置应该可以解决问题:

a = np.array([[1, 2], [2, 3], [4, 5], [6, 7]])
a_t = a.T
print(a_t)
array([[1, 2, 4, 6],
       [2, 3, 5, 7]])

您的数据作为列表:

In [101]: alist = [[1, 2], [2, 3], [4, 5], [6, 7]]                                             
In [102]: alist                                                                                
Out[102]: [[1, 2], [2, 3], [4, 5], [6, 7]]

并作为 numpy 阵列:

In [103]: arr = np.array(alist)                                                                
In [104]: arr                                                                                  
Out[104]: 
array([[1, 2],
       [2, 3],
       [4, 5],
       [6, 7]])

“转置”列表的标准习语是:

In [105]: list(zip(*alist))                                                                    
Out[105]: [(1, 2, 4, 6), (2, 3, 5, 7)]

使用 arrays,有一个转置方法:

In [106]: arr.transpose()                                                                      
Out[106]: 
array([[1, 2, 4, 6],
       [2, 3, 5, 7]])

第一个数组是 (4,2) 形状; 它的转置是(2,4)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM