Python Concat是多个数组的第二部分

Python Concat是多个数组的第二部分,python,numpy,stack,Python,Numpy,Stack,我想将两个阵列的形状相同,如下所示: array1= (1230000,32) array2= (1230000,32) array3= (1230000,32) 我希望我的结果成为现实 res1= array1+array2: (1230000,64) res2= array1+array2+array3: (1230000,96) 我试过了 res1 = np.stack((array1,array2),axis=-1) print('result 1',res1.shape) 但是这

我想将两个阵列的形状相同,如下所示:

array1= (1230000,32)
array2= (1230000,32)
array3= (1230000,32)
我希望我的结果成为现实

res1= array1+array2: (1230000,64)
res2= array1+array2+array3: (1230000,96)
我试过了

res1 = np.stack((array1,array2),axis=-1)
print('result 1',res1.shape)

但是这不起作用

最好的选择是定义一个执行您需要的功能。大概是这样的:

array1= [1230000,32] #Change to array to avoid inmutable tuple
array2= [1230000,32] #Change to array to avoid inmutable tuple
array3= [1230000,32] #Change to array to avoid inmutable tuple


def sumArrays(arraysToSum = []):
    result = [0, 0]
    for arrayToSum in arraysToSum:
        result[0] = arrayToSum[0]
        result[1] += int(arrayToSum[1])
    return result
        
print(sumArrays([array1, array2, array3]))

Output: [1230000, 96]

你的轴心是对的,但是你要找的是。函数将创建一个新维度,而
np.concatenate
使用一个现有维度:

res1 = np.concatenate((array1, array2), axis=1) # shape (1230000, 64)
或对于定义为元组(或列表)的任意数量的输入数组:


np.hstack
是您正在寻找的水平堆栈阵列馈送到它:

res1 = np.hstack((array1,array2))  #(1230000,64)
res2 = np.hstack((array1,array2,array3))  #(1230000,96)

我想你误解了这个问题。他正在询问如何将他提供的形状数组压缩为所需的形状。此外,永远不要将可变对象用作默认参数。
res1 = np.hstack((array1,array2))  #(1230000,64)
res2 = np.hstack((array1,array2,array3))  #(1230000,96)