如何有效地用一维数组的元素填充二维数组?

时间:2019-04-17 20:18:04

标签: python-3.x numpy numpy-broadcasting

如果给定一堆一维数组,那么如何用循环重复的值填充二维数组,以便依次覆盖所有可能的值?

玩具示例:

input : a = np.arange(4), b = np.arange(5), c = np.arange(2)
output:[[0 , 0 , 0 ],
        [0 , 0 , 1 ],
        [0 , 1 , 0 ],
        [0 , 1 , 1 ],
        [0 , 2 , 0 ],
        [0 , 2 , 1 ],
        ............,
        [3 , 4 , 1 ],
        [3 , 4 , 0 ]]

        40 elements in total. 

是否可以使用Numpy广播来做到这一点?

我可以想到的替代方法是使用itertools模块的cycle / repeat生成器,但是我怀疑它会很慢,因为生成列表后必须将它们串联在一起。

目的:我正在尝试用整数值解决Frobenius问题的特定情况(这是我遇到的另一个问题的子任务),并且我想出了一种使用numpy广播的方法-如果只有我具有上面的二维数组/矩阵,我目前停留在这里。

0 个答案:

没有答案