Skapandefunktioner för 1D-Arrayer
Förutom grundläggande array-skapande genom att explicit ange elementen, tillåter numpy
också automatisk array-skapande med hjälp av speciella funktioner. Här är två av de vanligaste funktionerna för att skapa uteslutande 1D-arrayer:
arange()
;linspace()
.
arange()
Funktionen numpy.arange()
är liknande Pythons inbyggda range()
-funktion; dock returnerar den en ndarray
. I huvudsak skapar den en array med jämnt fördelade element inom ett specificerat intervall.
Till exempel, om det specificerade intervallet är från 0 till 10 med en steglängd på 2, skulle den resulterande arrayen vara: [0, 2, 4, 6, 8]
.
Här är dess tre viktigaste parametrar och deras roller:
start
:Standardvärde:
0
;Representerar första elementet i arrayen.
stop
:Inget standardvärde;
Definierar slutpunkten, som inte ingår i arrayen.
step
:Standardvärde:
1
;Anger ökningen som läggs till varje efterföljande 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()
Medan arange()
kan arbeta med reella tal, föredras numpy.linspace()
över numpy.arange()
för detta ändamål eftersom arange()
kan ge oväntade resultat på grund av flyttalsprecisionfel vid beräkning av steg. I kontrast genererar linspace()
ett specifikt antal jämnt fördelade punkter inom ett intervall, vilket säkerställer noggrannhet och konsekvens.
Med linspace()
, istället för step
-parametern, finns det en num
-parameter som används för att specificera antalet prover (tal) inom ett givet intervall (standard är 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
-parametern bestämmer om stop
-värdet inkluderas. Som standard är det True
(inkluderande). Om det ställs in på False
utesluts stop
-värdet, vilket något minskar steglängden.
Här är en jämförelse av array_inclusive
och 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
, delas intervallet [0, 1] in i 4 lika segment och inkluderar slutpunkten själv (1
), vilket resulterar i en steglängd på (1 - 0) / 4 = 0.25.
När endpoint=False
, delas intervallet [0, 1) in i 5 lika segment eftersom slutpunkten är exkluderad, vilket resulterar i en steglängd på (1 - 0) / 5 = 0.2.
Notera
Du kan alltid lära dig mer om dessa funktioner i deras dokumentation: arange, linspace.
Swipe to start coding
- Använd funktionen
arange()
för att skapa arrayeneven_numbers
. - Ange argumenten för att skapa en array av jämna tal från
2
till21
exklusive. - Använd den lämpliga funktionen för att skapa arrayen
samples
, som tillåter att specificera antalet värden inom ett givet intervall. - Ange de första tre argumenten för att skapa en array av
10
jämnt fördelade tal mellan5
och6
. - Se till att
6
inte inkluderas i arrayensamples
.
Lösning
Tack för dina kommentarer!