Skabelsesfunktioner for 1D-Arrays
Udover grundlæggende array-oprettelse ved eksplicit at specificere elementerne, tillader numpy
også automatisk array-oprettelse ved hjælp af specielle funktioner. Her er to af de mest almindelige funktioner til at oprette udelukkende 1D-arrays:
arange()
;linspace()
.
arange()
Funktionen numpy.arange()
ligner Pythons indbyggede range()
funktion; dog returnerer den en ndarray
. Grundlæggende skaber den et array med jævnt fordelte elementer inden for et specificeret interval.
For eksempel, hvis det specificerede interval er fra 0 til 10 med en trin størrelse på 2, vil det resulterende array være: [0, 2, 4, 6, 8]
.
Her er de tre vigtigste parametre og deres roller:
start
:Standardværdi:
0
;Repræsenterer det første element i arrayet.
stop
:Ingen standardværdi;
Definerer slutpunktet, som ikke er inkluderet i arrayet.
step
:Standardværdi:
1
;Angiver inkrementet, der tilføjes til hvert efterfø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 arbejde med reelle tal, foretrækkes numpy.linspace()
frem for numpy.arange()
til dette formål, fordi arange()
kan give uventede resultater på grund af flydende-punkt præcisionsfejl ved beregning af trin. I modsætning hertil genererer linspace()
et specifikt antal jævnt fordelte punkter inden for et interval, hvilket sikrer nøjagtighed og konsistens.
Med linspace()
, i stedet for step
parameteren, er der en num
parameter, der bruges til at specificere antallet af prøver (tal) inden for et givet interval (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
værdien er inkluderet. Som standard er den True
(inkluderende). Hvis den sættes til False
, udelukkes stop
værdien, hvilket reducerer trin størrelsen en smule.
Her er en sammenligning af 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
, er intervallet [0, 1] opdelt i 4 lige store segmenter og inkluderer endpoint selv (1
), hvilket resulterer i en trinlængde på (1 - 0) / 4 = 0.25.
Når endpoint=False
, er intervallet [0, 1) opdelt i 5 lige store segmenter da endpoint er ekskluderet, hvilket resulterer i en trinlængde på (1 - 0) / 5 = 0.2.
Bemærk
Du kan altid lære mere om disse funktioner i deres dokumentation: arange, linspace.
Swipe to start coding
- Brug
arange()
funktionen til at opretteeven_numbers
arrayet. - Angiv argumenterne for at oprette et array af lige tal fra
2
til21
eksklusiv. - Brug den passende funktion til at oprette
samples
arrayet, som tillader at specificere antallet af værdier inden for et givet interval. - Angiv de første tre argumenter for at oprette et array af
10
lige store tal mellem5
og6
. - Sørg for, at
6
ikke er inkluderet isamples
arrayet.
Løsning
Tak for dine kommentarer!