左边填充一个0列的列向量

时间:2018-03-22 18:24:03

标签: python arrays numpy

如何将reshape 1D numpy数组转换为2D numpy数组 并在列上填充零。

例如:

输入:

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

预期产出:

np.array([[0, 0, 1],
          [0, 0, 2],
          [0, 0, 3]])

我该怎么做?

3 个答案:

答案 0 :(得分:2)

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

选项1
np.pad(这应该很快)

np.pad(a[:, None], ((0, 0), (2, 0)), mode='constant')

array([[0, 0, 1],
       [0, 0, 2],
       [0, 0, 3]])

选项2
将切片分配给np.zeros(也非常快)

b = np.zeros((3, 3))
b[:, -1] = a

array([[0., 0., 1.],
       [0., 0., 2.],
       [0., 0., 3.]])

答案 1 :(得分:1)

对于您的具体示例:

a = np.array([1,2,3])
a.resize([3, 3])
a = np.rot90(a, k=3)

希望这会有所帮助

答案 2 :(得分:0)

创建一个函数,创建一个m x n x 3维度的零数组。然后浏览原始矩阵并将其值分配给新零矩阵的那些应该为非零的方。