2015-10-12 6 views
0

Есть ли функция в numpy/scipy для надэмплирования массива 2D numpy?Oversample Numpy Array (2D)

пример:

>>> 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

EDIT Didnt видите комментарий, пока после поста, удалить при необходимости

Оригинал проверка np.repeat повторить образцы. показанный verbosely

>>> 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]]) 
+0

Да ... посмотрел вокруг, прежде чем публиковать сообщения ... извините, но спасибо вам за ответ! –