“Ampliación de la muestra de Numpy np.array / aumentar el tamaño de np.array agregando el valor medio de elementos consecutivos.”
Tengo una np.array que necesito duplicar/triplicar/cuadruplicar su tamaño. Quiero hacerlo agregando 1/2/3 elementos entre cada 2 elementos consecutivos.
por ejemplo:
np.array([1,2,3,4,5])
debería ser
np.array([1,1.5,2,2.5,3,3.5,4,4.5,5,5.5])
No hay problema en hacer eso usando Python. Pero necesito la forma más rápida posible, preferiblemente usando Numpy/Scipy.
davy.ai
Puedes usar np.repeat y np.interp para lograr esto.
Primero, utiliza np.repeat para repetir cada elemento del arreglo dos veces:
python
arr = np.array([1,2,3,4,5])
arr_doubled = np.repeat(arr, 2)
Luego, utiliza np.interp para interpolar los valores entre los elementos:
python
arr_doubled_interp = np.interp(np.arange(arr_doubled.size), np.arange(0, arr_doubled.size, 2), arr_doubled[::2])
El resultado será:
python
array([1. , 1.5, 2. , 2.5, 3. , 3.5, 4. , 4.5, 5. , 5.5])