左边用 0 填充一维列向量



如何将重塑 1D 数字数组转换为 2D 数字数组并在列上用零填充。

例如:

输入:

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

预期产出:

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

我该怎么做?

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.]])

对于您的具体示例:

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

希望这有帮助

创建一个函数,用于创建 m x n x 3 维的零数组。然后遍历原始矩阵并将其值分配给新零矩阵中应为非零的各方。

最新更新