Ho una matrice numpy come questa [1,1,1,-1,-1,1,-1,1,1,-1,-1,-1,1,-1]
Mi piacerebbe trovare la lunghezza della serie consecutiva più lunga di 1s o -1s. Nell'esempio, dovrebbe essere 3trova la lunghezza della serie di numeri consecutivi più lunga
risposta
in puro Python
>>> from itertools import groupby
>>> L = [1,1,1,-1,-1,1,-1,1,1,-1,-1,-1,1,-1]
>>> max(sum(1 for i in g) for k,g in groupby(L))
3
Non può essere più semplice di così. +1 –
Bel uso di itertools! – jszakmeister
@jszakmeister, ogni volta che il problema include la parola "consecutivo", 'groupby()' dovrebbe essere la prima cosa che fai su –
Simile alla risposta da @AlexMartelli
>>> import numpy as np
>>> nums = np.array([1,1,1,-1-1,1,-1,1,1,-1,-1,-1,1,-1])
>>> run_ends = np.where(np.diff(nums))[0] + 1
>>> np.diff(np.hstack((0, run_ends, nums.size))).max()
3
- 1. Serie di numeri consecutivi (diverse lunghezze)
- 2. Python: lunghezza della sottolista più lunga?
- 3. MySQL Determinare la lunghezza VarChar più lunga
- 4. Trova la lunghezza della riga più lunga in una colonna in oracolo
- 5. Perché la lunghezza del byte di una stringa è più lunga della lunghezza?
- 6. Trova più lunga sequenza non decrescente
- 7. RegEx - Numeri di corrispondenza della lunghezza variabile
- 8. Applicazioni della sottosquadra crescente più lunga
- 9. Lunghezza di parola più lunga in un elenco
- 10. Indice della corsa più lunga C#
- 11. Trova la sequenza ripetitiva più lunga in una stringa
- 12. Trova la più piccola serie di lavori sovrapposti
- 13. Ricerca di un campo con la lunghezza più lunga in una colonna
- 14. Come rompere lunga serie di linee multiple
- 15. Come ottenere la lunghezza della più lunga stringa in un array
- 16. lunghezza della serie di classe privata non è accessibile
- 17. Trova x i numeri interi più piccoli in un elenco di lunghezza n
- 18. Trova max non di record consecutivi
- 19. Accorciare l'elenco di numeri con trattini tra numeri consecutivi
- 20. dati per la modifica dinamica sequenza di n-length con query di lunghezza più lunga sottosequenza
- 21. ArrayList ordinamento sequenza più lunga
- 22. Trova la somma di Fibonacci Serie
- 23. "La chiave specificata era troppo lunga, la lunghezza massima della chiave è di 1000 byte"
- 24. Successione palindromica comune più lunga
- 25. Trovare la stringa più lunga all'interno di un NSArray
- 26. PHP più breve/lunga stringa nella matrice
- 27. Come implementare la divisione lunga per numeri enormi (bignums)
- 28. Metodo di rompere una lunga serie frase
- 29. Count numeri consecutivi in un vettore
- 30. Trova la somma di una serie di sottoarray
Vuoi un 'soluzione numpy' o una soluzione pura-python va bene ? È banale usare 'itertools.groupby' ... – Bakuriu
Quindi l'output in questo caso dovrebbe essere 2 (-1-1) giusto? ... ord c'è solo un", "mancante e in realtà vuoi 3 (1,1 1)? – pypat
@Bakuriu tutte le soluzioni pure-python sono soluzioni numpy. L'unica differenza è che a volte le soluzioni specifiche di numpy sono molto più belle o molto più veloci. –