如何将重塑 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 维的零数组。然后遍历原始矩阵并将其值分配给新零矩阵中应为非零的各方。