我想将形状(h,w)的数组缩放n倍,得到一个形状数组(h * n,w * n),其中 .
假设我有一个2x2阵列:
array([[1, 1],
[0, 1]])
我想将数组缩放为4x4:
array([[1, 1, 1, 1],
[1, 1, 1, 1],
[0, 0, 1, 1],
[0, 0, 1, 1]])
也就是说,原始数组中每个单元格的值被复制到结果数组中的4个相应单元格中 . 假设任意数组大小和缩放因子,最有效的方法是什么?
4 回答
为了有效扩展我使用以下方法 . 比
repeat
快5倍,比kron
快10倍 . 首先,初始化目标数组,以就地填充缩放数组 . 并预定义切片以赢得几个周期:现在这个函数将完成扩展:
或者只是在一个函数中同样的事情:
你可以使用repeat:
我不确定是否有一种巧妙的方法将两种操作合二为一 .
你应该使用Kronecker product,numpy.kron:
它给你想要的东西:
scipy.misc.imresize可以缩放图像 . 它也可用于缩放numpy数组: