Dire che ho il seguente elenco di numeri:tuple di intervalli continui chiusi
my_array = [0, 3, 4, 7, 8, 9, 10, 20, 21, 22, 70]
mi piacerebbe trovare ogni intervallo chiuso contenente interi consecutivi senza lacune in questo elenco. Se per qualsiasi numero nell'elenco ci sono più intervalli di questo tipo, abbiamo il che conserva solo il massimo di tali intervalli. La risposta corretta sopra dovrebbe essere:
[0, 0]
[3, 4]
[7, 10]
[20, 22]
[70, 70]
Per vedere questo, si noti ad esempio:
l'intervallo chiuso
[0,0]
contiene l'intero0
, non contiene lacune, e nessuno dei suoi componenti sono contenuti in qualsiasi altro intervallo chiuso.L'intervallo chiuso
[3,4]
non contiene spazi vuoti e i suoi membri non sono contenuti in nessun altro intervallo chiuso senza spazi più grandi di se stessi.
Come posso fare questo in numpy? Ho iniziato a scrivere un algoritmo che utilizza np.diff(my_array)
per rilevare le transizioni nell'array, ma non riesce su casi d'angolo come intervalli contenenti solo un elemento.
come si definisce, ogni chiuso intervallo di continuo ??, qual è la regola ?? – Hackaholic
@Hackaholic Ho ampliato in modo significativo l'OP per chiarire cosa intendo. fammi sapere se non è ancora chiaro. –
ottenuto ora, è chiaro ora – Hackaholic