首页 > 解决方案 > 以更简单的方式连接元组内的数组

问题描述

我有一个元组 X ,其元素是二维 numpy 数组,它们具有相同的第一个维度和不同的第二个维度。我想连接这些数组以制作 1 个大数组。例如:

X = (np.array of shape[10,3], np.array of shape[10,5], np.array of shape[10,7])。我想制作一个形状为 [10,15] 的最终数组 Y,它是元组 X 中所有元素的串联。

我做了这样的事情。它有效,但我问是否有任何更短/更简单的方法来做到这一点?谢谢!

def concat_arrays(data: tuple) -> np.ndarray:
    final_array = data[0]
    for i in range(len(data)):
        if i > 0:
            final_array = np.hstack((final_array,data[i]))
    return final_array 

标签: pythonarraysnumpy

解决方案


就是这么简单:

def concat_arrays(data: tuple) -> np.ndarray:
    return np.hstack(data)

无需一次遍历和堆叠一个 - 这就是为什么要求您传递一个元组而不是两个单独的参数的原因。(无论如何,这在 Python 中并不是真正的限制——因为*args存在——但仍然存在。)

但是当然,写这个没有意义,因为我们可以直接使用np.hstack


推荐阅读