Ampliar el número con una frecuencia de muestreo dinámico

votos
0

Tengo una lista de marcas de tiempo (segunda resolución) que representan el id de algunas lecturas del sensor. Tengo que añadir una resolución de milisegundos dependiendo del número de muestras por segundo. Un ejemplo a continuación:

[1344397048000, 1344397048000, 1344397048000, 1344397049000, 1344397049000, 1344397049000, 1344397049000, 1344397049000, 1344397049000, 1344397050000, 1344397050000]

Como se puede ver el número de muestras cambiar con respecto a una marca de tiempo en particular:

Counter({1344397048000: 3, 1344397049000: 6, 1344397050000: 2})

Lo que quiero es la lista inicial de las marcas de tiempo con milisegundos para cada caso:

[1,344,397,048,000.0, 1,344,397,048,333.3333, 1,344,397,048,666.6667, 1,344,397,049,000.0, 1,344,397,049,166.6667, 1,344,397,049,333.3333, 1,344,397,049,500.0, 1,344,397,049,666.6667, 1,344,397,049,833.3333, 1,344,397,050,000.0, 1,344,397,050,500.0]

Para hacer eso ahora estoy usando bucles y este código es extremadamente lento, así que me preguntaba si hay una manera de hacerlo más rápido.

El código que estoy utilizando:

from collections import Counter
import numpy as np

x = [1344397048000, 1344397048000, 1344397048000, 1344397049000, 1344397049000, 1344397049000, 1344397049000, 1344397049000, 1344397049000, 1344397050000, 1344397050000]

d = Counter(x)

result = []
for time in np.unique(x):
    for i in range(0,d[time]):
        result.append(time+i*1000/d[time])

Esta cuestión está directamente relacionada con ésta: Ampliar el número en una lista Sin embargo, esta vez el parámetro de incremento es dinámico.

Publicado el 25/10/2018 a las 17:34
fuente por usuario
En otros idiomas...                            

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more