Creatiefuncties voor 1D-Arrays
Naast het maken van basisarrays door expliciet de elementen op te geven, staat numpy
ook automatische arraycreatie toe met behulp van speciale functies. Hier zijn twee van de meest voorkomende functies voor het maken van uitsluitend 1D-arrays:
arange()
;linspace()
.
arange()
De functie numpy.arange()
is vergelijkbaar met de ingebouwde range()
functie van Python; echter, het retourneert een ndarray
. In wezen creëert het een array met gelijkmatig verdeelde elementen binnen een gespecificeerd interval.
Bijvoorbeeld, als het gespecificeerde interval van 0 tot 10 is met een stapgrootte van 2, zou de resulterende array zijn: [0, 2, 4, 6, 8]
.
Hier zijn de drie belangrijkste parameters en hun rollen:
start
:Standaardwaarde:
0
;Vertegenwoordigt het eerste element van de array.
stop
:Geen standaardwaarde;
Definieert het eindpunt, dat niet is opgenomen in de array.
step
:Standaardwaarde:
1
;Specificeert de toename die aan elk volgend element wordt toegevoegd.
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()
Hoewel arange()
kan werken met reële getallen, heeft numpy.linspace()
de voorkeur boven numpy.arange()
voor dit doel omdat arange()
onverwachte resultaten kan opleveren vanwege floating-point precisiefouten bij het berekenen van stappen. Daarentegen genereert linspace()
een specifiek aantal gelijkmatig verdeelde punten binnen een interval, wat nauwkeurigheid en consistentie garandeert.
Met linspace()
, in plaats van de step
parameter, is er een num
parameter die wordt gebruikt om het aantal monsters (getallen) binnen een gegeven interval te specificeren (standaard is 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
De endpoint
parameter bepaalt of de stop
waarde is inbegrepen. Standaard is het True
(inclusief). Als je het instelt op False
, wordt de stop
waarde uitgesloten, waardoor de stapgrootte iets wordt verkleind.
Hier is een vergelijking van array_inclusive
en 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)
Wanneer endpoint=True
, wordt het interval [0, 1] verdeeld in 4 gelijke segmenten en omvat het de endpoint zelf (1
), resulterend in een stapgrootte van (1 - 0) / 4 = 0.25.
Wanneer endpoint=False
, wordt het interval [0, 1) verdeeld in 5 gelijke segmenten aangezien de endpoint is uitgesloten, resulterend in een stapgrootte van (1 - 0) / 5 = 0.2.
Opmerking
Je kunt altijd meer leren over deze functies in hun documentatie: arange, linspace.
Swipe to start coding
- Gebruik de
arange()
functie om deeven_numbers
array te maken. - Specificeer de argumenten om een array van even getallen van
2
tot21
exclusief te maken. - Gebruik de juiste functie om de
samples
array te maken, waarmee je het aantal waarden binnen een gegeven interval kunt specificeren. - Specificeer de eerste drie argumenten om een array van
10
gelijkmatig verdeelde getallen tussen5
en6
te maken. - Zorg ervoor dat
6
niet is opgenomen in desamples
array.
Oplossing
Bedankt voor je feedback!