我有像这样的Numpy数组,
[[1 2 3
2 0 0
3 0 0]]
我想把它变成这种形式,
[[1 2 2 3 3
2 0 0 0 0
2 0 0 0 0
3 0 0 0 0
3 0 0 0 0]]
我的想法是从原始数组中提取子数组包含零,并使用Kronecker产品获取子数组,这是我想要的数组。但我不知道输出数组的第一行和第一行。
如何实现这一目标?请给我任何建议。
答案 0 :(得分:3)
另一种方法是使用np.repeat
。如果arr
是您的3x3阵列:
>>> arr.repeat([1, 2, 2], axis=0).repeat([1, 2, 2], axis=1)
array([[1, 2, 2, 3, 3],
[2, 0, 0, 0, 0],
[2, 0, 0, 0, 0],
[3, 0, 0, 0, 0],
[3, 0, 0, 0, 0]])
例如,arr.repeat([1, 2, 2], axis=0)
表示第一行arr
重复一次,第二行重复两次,第三行重复三次。
然后对列进行同样的操作。