Immaginate una serie numpy, ad es. x = np.linspace(1,10)
.Quale valore devo usare in un intervallo di porzioni per includere l'ultimo valore in una matrice numpy?
x[i:j]
mi dà una vista in x
per l'intervallo [i,j)
. Mi piace il fatto che posso anche fare x[i:-k]
che esclude gli ultimi k
elementi.
Tuttavia, al fine di includere l'ultimo elemento che ho bisogno di fare x[i:]
.
La mia domanda è questa: come posso combinare queste due notazioni se per esempio ho bisogno di eseguire il ciclo su k
.
dire che io voglio fare questo:
l = list()
for k in [5,4,3,2,1]:
l.append(x[:-k])
l.append(x[:])
Quello che mi infastidisce è che nell'ultima riga. In questo semplice esempio, naturalmente, non fa molta differenza, ma a volte diventa molto più fastidioso. Quello che mi manca è qualcosa di più SECCO.
Il seguente frammento di corso non produce il risultato desiderato, ma rappresenta lo stile di codice che cerco:
l = list()
for k in [5,4,3,2,1,0]:
l.append(x[:-k])
Grazie a advaned.
che modo il risultato prodotto da quell'ultimo frammento differiscono da risultato desiderato? Non sono del tutto chiaro su cosa stai effettivamente cercando di produrre. –
@MattBall L'ultimo snippet, quando 'k = 0', valuterà' x [: - 0] ', che è un array vuoto, invece di' x [:] 'che è l'array completo. – lxop
possibile duplicato di [liste/matrici Python: disabilita l'indicizzazione negativa a fette] (http://stackoverflow.com/questions/13410615/python-lists-arrays-disable-negative-indexing-wrap-around-in- slice) – wim