Indicizzazione, slicing e fancy indexing
Slicing di base, mascheramento booleano, fancy indexing e np.where() per la selezione condizionale.
Indicizzazione, slicing e fancy indexing è una lezione Learn AI with Python gratuita su CoddyKit. Questa è la lezione 2 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Learn AI with Python, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Learn AI with Python include 4 lezioni in totale.
Nozioni di base sull'indicizzazione
Gli array NumPy usano un'indicizzazione a base zero, come le liste Python. Gli indici negativi contano a partire dalla fine.
import numpy as np
a = np.array([10, 20, 30, 40, 50])
print(a[0]) # 10
print(a[-1]) # 50Slicing 1D
Lo slicing utilizza start:stop:step e restituisce una vista (non una copia), quindi modificare uno slice modifica l'originale.
print(a[1:4]) # [20 30 40]
print(a[::2]) # [10 30 50]
view = a[1:3]
view[0] = 99
print(a) # [10 99 30 40 50]Indicizzazione 2D [riga, colonna]
Per gli array 2D, utilizzi un'unica parentesi quadra contenente entrambe le coordinate: m[row, col]. È più chiaro e veloce di m[row][col].
m = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
print(m[1, 2]) # 6
print(m[0, 0]) # 1Slicing di righe e colonne
Utilizzi i due punti per selezionare un intero asse. m[:, 1] seleziona la colonna 1 in tutte le righe.
print(m[0, :]) # first row: [1 2 3]
print(m[:, 1]) # second col: [2 5 8]
print(m[1:, :2]) # bottom-left blockMaschere booleane
Un confronto produce un array booleano della stessa forma. L'indicizzazione con quella maschera conserva solo le posizioni True.
a = np.array([5, 12, 7, 20, 3])
mask = a > 8
print(mask) # [False True False True False]
print(a[mask]) # [12 20]Combinare le condizioni
Utilizzi & (and) e | (or) elemento per elemento, racchiudendoli tra parentesi. Le parole chiave Python and/or NON funzionano sugli array.
print(a[(a > 4) & (a < 15)]) # [ 5 12 7]Assegnazione tramite una maschera
Può scrivere nelle posizioni selezionate dalla maschera per ripulire i dati direttamente, ad esempio limitando i valori anomali a una soglia massima.
a = np.array([5, 12, 7, 20, 3])
a[a > 10] = 10
print(a) # [ 5 10 7 10 3]Indicizzazione avanzata con gli array
Passi un array (o una lista) di indici interi per selezionare elementi arbitrari in qualsiasi ordine, anche con ripetizioni. Il risultato è una copia, non una vista.
a = np.array([10, 20, 30, 40, 50])
idx = [4, 0, 2, 2]
print(a[idx]) # [50 10 30 30]Indicizzazione avanzata in 2D
Fornisca due array di indici per selezionare specifiche coppie (riga, colonna). Qui selezioniamo gli elementi agli angoli della diagonale.
m = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
rows = [0, 2]
cols = [0, 2]
print(m[rows, cols]) # [1 9]Selezione condizionale con np.where
np.where(cond, x, y) restituisce gli elementi di x dove la condizione è True e quelli di y negli altri casi: un if-else vettorializzato.
a = np.array([-2, 5, -7, 3])
print(np.where(a < 0, 0, a)) # [0 5 0 3] (clip negatives)np.where per trovare gli indici
Chiamato con un solo argomento, np.where(cond) restituisce gli indici nei quali la condizione è verificata.
a = np.array([10, 20, 30, 40])
print(np.where(a > 15)) # (array([1, 2, 3]),)Verifica rapida
Metta alla prova le Sue competenze sull'indicizzazione.
Riepilogo
Tecniche di selezione:
- Indicizzazione e slicing di base (gli slice sono viste)
- Accesso 2D con
m[row, col], intero asse con: - Maschere booleane con
&e| - Indicizzazione avanzata con array di indici (restituisce una copia)
np.where(cond, x, y)per un if-else vettorializzato
Domande Frequenti
La lezione «Indicizzazione, slicing e fancy indexing» è gratuita?
Sì — il testo completo di «Indicizzazione, slicing e fancy indexing» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Learn AI with Python, passa a CoddyKit PRO. Il corso Learn AI with Python include 4 lezioni in totale.
Cosa imparerò in «Indicizzazione, slicing e fancy indexing»?
Slicing di base, mascheramento booleano, fancy indexing e np.where() per la selezione condizionale. Eserciti Learn AI with Python con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare Learn AI with Python?
Non è richiesta alcuna esperienza precedente. Learn AI with Python su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 2 di 4.
Quanto tempo richiede la lezione «Indicizzazione, slicing e fancy indexing»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione Learn AI with Python?
Sì. Ogni lezione Learn AI with Python include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- Creazione e proprietà degli array
- Indicizzazione, slicing e fancy indexing
- Broadcasting e operazioni vettorializzate
- Algebra lineare con NumPy