如何将reshape 1D numpy数组转换为2D numpy数组 并在列上填充零。
例如:
输入:
a = np.array([1,2,3])
预期产出:
np.array([[0, 0, 1],
[0, 0, 2],
[0, 0, 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维度的零数组。然后浏览原始矩阵并将其值分配给新零矩阵的那些应该为非零的方。