Opprettelsesfunksjoner for 1D-Arrays
I tillegg til grunnleggende opprettelse av array ved å eksplisitt spesifisere elementene, tillater numpy
også automatisk opprettelse av array ved hjelp av spesielle funksjoner. Her er to av de mest vanlige funksjonene for å opprette utelukkende 1D-arrays:
arange()
;linspace()
.
arange()
Funksjonen numpy.arange()
ligner på Pythons innebygde range()
-funksjon; men den returnerer en ndarray
. I hovedsak oppretter den en array med jevnt fordelte elementer innenfor et spesifisert intervall.
For eksempel, hvis det spesifiserte intervallet er fra 0 til 10 med en trinnstørrelse på 2, vil den resulterende arrayen være: [0, 2, 4, 6, 8]
.
Her er de tre viktigste parameterne og deres roller:
start
:Standardverdi:
0
;Representerer det første elementet i arrayen.
stop
:Ingen standardverdi;
Definerer sluttpunktet, som ikke er inkludert i arrayen.
step
:Standardverdi:
1
;Angir inkrementet som legges til hvert påfølgende element.
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()
Mens arange()
kan arbeide med reelle tall, er numpy.linspace()
foretrukket fremfor numpy.arange()
for dette formålet fordi arange()
kan gi uventede resultater på grunn av flyttalls-presisjonsfeil når det beregnes trinn. I motsetning genererer linspace()
et spesifikt antall jevnt fordelte punkter innenfor et intervall, noe som sikrer nøyaktighet og konsistens.
Med linspace()
, i stedet for step
-parameteren, er det en num
-parameter som brukes til å spesifisere antall prøver (tall) innenfor et gitt intervall (standard er 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
endpoint
-parameteren bestemmer om stop
-verdien er inkludert. Som standard er den True
(inkluderende). Hvis den settes til False
, ekskluderes stop
-verdien, noe som reduserer trinnstørrelsen litt.
Her er en sammenligning av array_inclusive
og 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)
Når endpoint=True
, deles intervallet [0, 1] inn i 4 like segmenter og inkluderer selve sluttpunktet (1
), noe som resulterer i en trinnstørrelse på (1 - 0) / 4 = 0,25.
Når endpoint=False
, deles intervallet [0, 1) inn i 5 like segmenter siden sluttpunktet er ekskludert, noe som resulterer i en trinnstørrelse på (1 - 0) / 5 = 0,2.
Merk
Du kan alltid lære mer om disse funksjonene i deres dokumentasjon: arange, linspace.
Swipe to start coding
- Bruk
arange()
-funksjonen for å lageeven_numbers
-arrayet. - Spesifiser argumentene for å lage en array av partall fra
2
til21
eksklusivt. - Bruk den passende funksjonen for å lage
samples
-arrayet, som lar deg spesifisere antall verdier innenfor et gitt intervall. - Spesifiser de tre første argumentene for å lage en array av
10
jevnt fordelte tall mellom5
og6
. - Sørg for at
6
ikke er inkludert isamples
-arrayet.
Løsning
Takk for tilbakemeldingene dine!