繁体   English   中英

在 Python 中将多个 arrays 组合成一个嵌套数组

[英]Combine multiple arrays into a single nested array in Python

我想将形状为 (I, J) 的 N arrays 组合成一个形状为 (I, J, N) 的数组,使得最终数组中 (i, j, n) 处的值等于(i, j) 处的第 n 个数组。

例如,假设我有两个 arrays:

arr1 = [[2,3,4],
        [3,4,5]]

arr2 = [[3,4,2],
         [4,3,5]]

那么最终的数组看起来像:

arr_final == [[[2,3], [3,4], [4,2]], 
              [[3,4], [4,3], [5,5]]]

或者,举一个更直接的例子:

arr1 = [[0,0,0],
        [0,0,0]]

arr2 = [[1,1,1],
         [1,1,1]]

arr3 = [[2,2,2],
         [2,2,2]]

那么最终的数组看起来像:

arr_final == [[[0,1,2], [0,1,2], [0,1,2]], 
              [[0,1,2], [0,1,2], [0,1,2]]]

Python 中是否有 function,或者更具体地说是 Numpy,可以帮助我解决这个问题?

在 Numpy 中,可以使用numpy.stack 请记住将轴指定为 -1,以便根据您的问题正确组合它。

import numpy as np

arr_final = np.stack([arr1, arr2, ..., arrN], axis=-1)

将产生预期的结果。

暂无
暂无

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

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