Ho una matrice numpy e una lista contenente un numero di oggetti fetta (in alternativa contenente tuple (start, end)
). Sto cercando di rimuovere le posizioni dell'oggetto slice dall'array originale e ottenere un secondo array con i valori rimanenti. esempioEliminazione di più porzioni da una serie numpy
Toy:
myarray = np.arange(20)
array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
17, 18, 19])
mylist=(slice(2,4),slice(15,19))
fare qualcosa e risultato dovrebbe essere
array([0, 1, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14])
L'array può essere in qualche centinaio di migliaia di grandi dimensioni, l'elenco degli oggetti porzione può contenere alcune migliaia di elementi e Ho bisogno di eseguire l'operazione spesso, quindi la velocità è un po 'importante.
Numpy delete non ha una lista di fette fino a che punto posso vedere?
Per ora sto generando il complemento della mia lista di oggetti fetta e affettandolo, ma la generazione del complemento è un processo un po 'scomodo in cui sto ordinando la mia lista di fette e iterando attraverso di essa, creando gli oggetti fetta complementare secondo necessità. Spero che ci sia un modo più elegante che non ho capito!
Ha funzionato alla grande, grazie! – anordell