numpy / scipy中是否有一个函数来过度采样2D numpy数组?
示例:
>>> x = [[1,2]
[3,4]]
>>>
>>> y = oversample(x, (2, 3))
将返回
y = [[1,1,2,2],
[1,1,2,2],
[1,1,2,2],
[3,3,4,4],
[3,3,4,4],
[3,3,4,4]]
目前我已经实现了自己的功能:
index_x = np.arange(newdim) / olddim
index_y = np.arange(newdim) / olddim
xx, yy = np.meshgrid(index_x, index_y)
return x[yy, xx, ...]
但它看起来不是最好的方式,因为它只适用于2D重塑以及有点慢...
有什么建议吗? 非常感谢你
答案 0 :(得分:1)
编辑直到发布后才看到评论,如果需要则删除
原 检查np.repeat重复模式。详细说明
>>> import numpy as np
>>> a = np.array([[1,2],[3,4]])
>>> a
array([[1, 2],
[3, 4]])
>>> b=a.repeat(3,axis=0)
>>> b
array([[1, 2],
[1, 2],
[1, 2],
[3, 4],
[3, 4],
[3, 4]])
>>> c = b.repeat(2,axis=1)
>>> c
array([[1, 1, 2, 2],
[1, 1, 2, 2],
[1, 1, 2, 2],
[3, 3, 4, 4],
[3, 3, 4, 4],
[3, 3, 4, 4]])