Funzioni di Creazione per Array 1D
Oltre alla creazione di array di base specificando esplicitamente gli elementi, numpy
consente anche la creazione automatica di array utilizzando funzioni speciali. Ecco due delle funzioni più comuni per creare array esclusivamente 1D:
arange()
;linspace()
.
arange()
La funzione numpy.arange()
è simile alla funzione range()
incorporata in Python; tuttavia, restituisce un ndarray
. In sostanza, crea un array con elementi equidistanti all'interno di un intervallo specificato.
Ad esempio, se l'intervallo specificato è da 0 a 10 con un passo di 2, l'array risultante sarebbe: [0, 2, 4, 6, 8]
.
Ecco i suoi tre parametri più importanti e i loro ruoli:
start
:Valore predefinito:
0
;Rappresenta il primo elemento dell'array.
stop
:Nessun valore predefinito;
Definisce il punto finale, che non è incluso nell'array.
step
:Valore predefinito:
1
;Specifica l'incremento aggiunto a ciascun elemento successivo.
import numpy as np # Creating an array of integers from 0 to 11 exclusive with step=1 array_1 = np.arange(11) print(array_1) # Creating an array of integers from 1 to 11 exclusive with step=1 array_2 = np.arange(1, 11) print(array_2) # Creating an array of integers from 0 to 11 exclusive with step=2 array_3 = np.arange(0, 11, 2) print(array_3)
linspace()
Mentre arange()
può funzionare con numeri reali, numpy.linspace()
è preferito rispetto a numpy.arange()
per questo scopo perché arange()
può produrre risultati inaspettati a causa degli errori di precisione dei numeri in virgola mobile quando si calcolano i passi. Al contrario, linspace()
genera un numero specifico di punti equidistanti all'interno di un intervallo, garantendo accuratezza e coerenza.
Con linspace()
, invece del parametro step
, c'è un parametro num
utilizzato per specificare il numero di campioni (numeri) all'interno di un dato intervallo (il valore predefinito è 50
).
import numpy as np # Generating 5 equally spaced values between 0 and 1 (inclusive) array_1 = np.linspace(0, 1, 5) print('Example 1:', array_1) # Generating 7 equally spaced values between -1 and 1 (inclusive) array_2 = np.linspace(-1, 1, 7) print('Example 2:', array_2)
Endpoint
Il parametro endpoint
determina se il valore stop
è incluso. Per impostazione predefinita, è True
(inclusivo). Impostandolo su False
esclude il valore stop
, riducendo leggermente la dimensione del passo.
Ecco un confronto tra array_inclusive
e array_exclusive
:
import numpy as np # Generating 5 equally spaced values between 0 and 1 (inclusive) array_inclusive = np.linspace(0, 1, 5) print('Endpoint = True:', array_inclusive) # Generating 5 equally spaced values between 0 and 1 (exclusive) array_exclusive = np.linspace(0, 1, 5, endpoint=False) print('Endpoint = False:', array_exclusive)
Quando endpoint=True
, l'intervallo [0, 1] è diviso in 4 segmenti uguali e include lo stesso endpoint (1
), risultando in una dimensione del passo di (1 - 0) / 4 = 0.25.
Quando endpoint=False
, l'intervallo [0, 1) è diviso in 5 segmenti uguali poiché l'endpoint è escluso, risultando in una dimensione del passo di (1 - 0) / 5 = 0.2.
Nota
Puoi sempre saperne di più su queste funzioni nella loro documentazione: arange, linspace.
Swipe to start coding
- Usa la funzione
arange()
per creare l'arrayeven_numbers
. - Specifica gli argomenti per creare un array di numeri pari da
2
a21
escluso. - Usa la funzione appropriata per creare l'array
samples
, che consente di specificare il numero di valori all'interno di un dato intervallo. - Specifica i primi tre argomenti per creare un array di
10
numeri equidistanti tra5
e6
. - Assicurati che
6
non sia incluso nell'arraysamples
.
Soluzione
Grazie per i tuoi commenti!