如何将多个Numpy数组合并为单个数组

时间:2019-09-16 05:52:29

标签: python numpy-ndarray

我想将多个2d Numpy形状数组合并为一个(r,a),(r,b),(r,c),...(r,z)到单个2d形状数组(r, a + b + c ... + z)

我尝试了np.hstack,但是它需要相同的形状&np.concat仅在与第二个数组有关的元组上运行。

3 个答案:

答案 0 :(得分:0)

我是numpy的新手,但我认为这是不可能的。前提是 “除了第二个轴以外,这些阵列的所有其他形状都必须具有相同的形状,一维阵列可以是任意长度。”

答案 1 :(得分:0)

您可以使用np.concatenatenp.hstack。这是一个示例:

>>> a = np.arange(15).reshape(5,3)
>>> a
array([[ 0,  1,  2],
       [ 3,  4,  5],
       [ 6,  7,  8],
       [ 9, 10, 11],
       [12, 13, 14]])
>>> b = np.arange(10).reshape(5,2)
>>> b
array([[0, 1],
       [2, 3],
       [4, 5],
       [6, 7],
       [8, 9]])

>>> np.concatenate((a,b), axis =1)
array([[ 0,  1,  2,  0,  1],
       [ 3,  4,  5,  2,  3],
       [ 6,  7,  8,  4,  5],
       [ 9, 10, 11,  6,  7],
       [12, 13, 14,  8,  9]])

>>> np.hstack((a,b))
array([[ 0,  1,  2,  0,  1],
       [ 3,  4,  5,  2,  3],
       [ 6,  7,  8,  4,  5],
       [ 9, 10, 11,  6,  7],
       [12, 13, 14,  8,  9]])


希望有帮助

答案 2 :(得分:0)

实际上,我的功能之一是返回scipy.sparse.csr.csr_matrix,我将其与另一个函数返回的列表一起转换为np.array,以便我可以合并所有内容,但将稀疏矩阵转换为 array(<73194x17类型''的稀疏矩阵,具有203371个压缩稀疏行格式的已存储元素,dtype = object) 与np.hstack不兼容。 不便之处,敬请原谅。 我想出了解决方案而不是numpy.hstack我使用了scipy hstack函数。 谢谢大家的回复。