在numpy中加倍矩阵

时间:2016-02-28 09:59:58

标签: python numpy

我们假设我有in的矩阵size mXn

我正在尝试创建一个大小为out的矩阵2mX2n out矩阵包含与in矩阵基本相同的元素, 除了值与零交替。

例如:

in = [[ 1,2,3],
       [4,5,6]]

out = [[1,0,2,0,3,0],
       [0,0,0,0,0,0],
       [4,0,5,0,6,0],
       [0,0,0,0,0,0]]

是否有矢量化的方法来实现这一目标?

1 个答案:

答案 0 :(得分:3)

使用NumPy:

import numpy as np

您的数据:

a = np.array([[ 1,2,3],
              [4,5,6]])

沿两个维度创建两倍大小的数组:

b = np.zeros([x * 2 for x in a.shape], dtype=a.dtype))

再次在两个维度中将a的值分配给每个b的第二个值:

b[::2,::2] = a

结果:

>>> b
array([[1, 0, 2, 0, 3, 0],
       [0, 0, 0, 0, 0, 0],
       [4, 0, 5, 0, 6, 0],
       [0, 0, 0, 0, 0, 0]])