过采样Numpy数组(2D)

时间:2015-10-12 07:33:34

标签: python arrays numpy

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重塑以及有点慢...

有什么建议吗? 非常感谢你

1 个答案:

答案 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]])