【问题标题】:How to merge multiple 2d arrays in numpy?如何在numpy中合并多个二维数组?
【发布时间】:2018-06-15 05:25:41
【问题描述】:

MWE:假设我有 12 个二维阵列。我想使用循环将它们合并为一些固定大小。下面的代码给出了我想要得到 X 的结果。这里我连接了 3 个二维数组,但是如果我想根据我的选择使用循环来固定这个大小,我该怎么做?

import numpy as np
a1 = np.array([[0, 12, 3], [5, 8, 9]])
a2 = np.array([[2, 13, 3], [5, 9, 9]])
a3 = np.array([[0, 24, 4], [6, 10, 9]])
a4 = np.array([[1, 55, 6], [4, 5, 19]])
a5 = np.array([[1, 56, 6], [4, 01, 9]])
a6 = np.array([[1, 57, 6], [4, 20, 9]])
a7 = np.array([[1, 58, 6], [4, 30, 9]])
a8 = np.array([[1, 59, 6], [4, 40, 9]])
a9 = np.array([[1, 51, 6], [4, 60, 9]])
a10 = np.array([[1, 34, 6], [4, 60, 9]])
a11 = np.array([[1, 51, 62], [4, 30, 9]])
a12 = np.array([[1, 1, 6], [4, 7, 9]]) 

M=[a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12]
d1 = np.concatenate((a1,a2,a3), 1)
d2 = np.concatenate((a4,a5,a6), 1)
d3 = np.concatenate((a7,a8,a9), 1)
d4 = np.concatenate((a10,a11,a12), 1)
X=[d1,d2,d3,d4]

【问题讨论】:

    标签: arrays python-2.7 numpy multidimensional-array


    【解决方案1】:

    你的问题有点不清楚 我假设您想让连接的二维数组(例如在 d1、d2、.. 中)的数量可变,并使用循环执行您在代码中所做的相同操作。

    你可以这样做:

    这将给出与您的代码相同的结果,您可以更改变量chosenSize 以获得不同的结果。

        a1 = np.array([[0, 12, 3], [5, 8, 9]])
        a2 = np.array([[2, 13, 3], [5, 9, 9]])
        a3 = np.array([[0, 24, 4], [6, 10, 9]])
        a4 = np.array([[1, 55, 6], [4, 5, 19]])
        a5 = np.array([[1, 56, 6], [4, 1, 9]])
        a6 = np.array([[1, 57, 6], [4, 20, 9]])
        a7 = np.array([[1, 58, 6], [4, 30, 9]])
        a8 = np.array([[1, 59, 6], [4, 40, 9]])
        a9 = np.array([[1, 51, 6], [4, 60, 9]])
        a10 = np.array([[1, 34, 6], [4, 60, 9]])
        a11 = np.array([[1, 51, 62], [4, 30, 9]])
        a12 = np.array([[1, 1, 6], [4, 7, 9]])
    
        M = [a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12]
        d1 = []  # will be used to concatenate
        X = []
        chosenSize = 3  # chosen size
    
        numberOfIterations = M.__len__()//chosenSize
    
        for i in range(0, numberOfIterations):
            for j in range(0, chosenSize):
                d1.append(M[j + chosenSize * i])
            d1 = np.concatenate(d1, 1)
            X.append(d1)
            d1 = []
    
        print(X)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-10-21
      • 2012-11-06
      • 2012-05-25
      • 1970-01-01
      • 2013-02-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多