Lat*_*ius 2 python numpy scipy
可能重复:
如何沿两个轴重复
假设我们有以下矩阵/图像:
x = array([[1, 0, 1],
[0, 1, 0],
[1, 0, 1]])
Run Code Online (Sandbox Code Playgroud)
我想得到的是一个9x9矩阵,它是上面的3倍放大版本,左上角有3x3个,中间顶部有3x3个,等等.
我已经尝试过的事情是:
scipy.ndimage.interpolation.zoom(x,3,order =(anything)),例如order = 0返回:
array([[1, 1, 0, 0, 0, 0, 1, 1, 1],
[1, 1, 0, 0, 0, 0, 1, 1, 1],
[0, 0, 1, 1, 1, 1, 0, 0, 0],
[0, 0, 1, 1, 1, 1, 0, 0, 0],
[0, 0, 1, 1, 1, 1, 0, 0, 0],
[0, 0, 1, 1, 1, 1, 0, 0, 0],
[1, 1, 0, 0, 0, 0, 1, 1, 1],
[1, 1, 0, 0, 0, 0, 1, 1, 1],
[1, 1, 0, 0, 0, 0, 1, 1, 1]])
Run Code Online (Sandbox Code Playgroud)
scipy.misc.imresize(x,(9,9),interp ="nearest")(实际上来自PIL),它提出了一个不同的创意(但错误的)解决方案.
同时,MATLAB imresize完美地解决了这个问题......
有任何想法吗?(注意:所有这些解决方案都应该有效,所以在提交之前,请尝试一下:))
Kronecker产品:
numpy.kron(x,numpy.ones((3,3)))
Run Code Online (Sandbox Code Playgroud)
结果:
array([[ 1., 1., 1., 0., 0., 0., 1., 1., 1.],
[ 1., 1., 1., 0., 0., 0., 1., 1., 1.],
[ 1., 1., 1., 0., 0., 0., 1., 1., 1.],
[ 0., 0., 0., 1., 1., 1., 0., 0., 0.],
[ 0., 0., 0., 1., 1., 1., 0., 0., 0.],
[ 0., 0., 0., 1., 1., 1., 0., 0., 0.],
[ 1., 1., 1., 0., 0., 0., 1., 1., 1.],
[ 1., 1., 1., 0., 0., 0., 1., 1., 1.],
[ 1., 1., 1., 0., 0., 0., 1., 1., 1.]])
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
337 次 |
| 最近记录: |