Luontitoiminnot 1D-Arrays
Perus taulukon luomisen lisäksi nimenomaisesti määrittelemällä elementit, numpy
mahdollistaa myös automaattisen taulukon luomisen erityisten funktioiden avulla. Tässä on kaksi yleisintä funktiota, jotka luovat yksinomaan 1D-taulukoita:
arange()
;linspace()
.
arange()
numpy.arange()
-funktio on samanlainen kuin Pythonin sisäänrakennettu range()
-funktio; kuitenkin se palauttaa ndarray
-taulukon. Käytännössä se luo taulukon, jossa on tasavälein olevia elementtejä määritellyllä välillä.
Esimerkiksi, jos määritelty väli on 0:sta 10:een askelvälin ollessa 2, tuloksena oleva taulukko olisi: [0, 2, 4, 6, 8]
.
Tässä ovat sen kolme tärkeintä parametria ja niiden roolit:
start
:Oletusarvo:
0
;Edustaa taulukon ensimmäistä elementtiä.
stop
:Ei oletusarvoa;
Määrittelee päätepisteen, joka ei sisälly taulukkoon.
step
:Oletusarvo:
1
;Määrittää lisäyksen, joka lisätään jokaiseen seuraavaan elementtiin.
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()
Vaikka arange()
voi toimia reaalilukujen kanssa, numpy.linspace()
on suositeltavampi kuin numpy.arange()
tähän tarkoitukseen, koska arange()
voi tuottaa odottamattomia tuloksia johtuen liukulukutarkkuusvirheistä askelten laskennassa. Sen sijaan linspace()
luo tietyn määrän tasaisesti jakautuneita pisteitä tietyllä välillä, varmistaen tarkkuuden ja johdonmukaisuuden.
linspace()
-funktiossa step
-parametrin sijasta käytetään num
-parametria, jolla määritetään näytteiden määrä (numerot) annetulla välillä (oletus on 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
-parametri määrittää, sisältyykö stop
-arvo. Oletuksena se on True
(sisältyvä). Asettamalla sen False
-arvoksi stop
-arvo jätetään pois, mikä hieman pienentää askelkokoa.
Tässä on vertailu array_inclusive
ja array_exclusive
välillä:
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)
Kun endpoint=True
, väli [0, 1] jaetaan 4 yhtä suureen osaan ja sisältää päätepisteen itsessään (1
), mikä johtaa askelkokoon (1 - 0) / 4 = 0.25.
Kun endpoint=False
, väli [0, 1) jaetaan 5 yhtä suureen osaan, koska päätepiste on poissuljettu, mikä johtaa askelkokoon (1 - 0) / 5 = 0.2.
Huomautus
Voit aina oppia lisää näistä funktioista niiden dokumentaatiosta: arange, linspace.
Swipe to start coding
- Käytä
arange()
-funktiota luodaksesieven_numbers
-taulukon. - Määritä argumentit luodaksesi taulukko parillisista numeroista
2
ja21
välillä poissulkien 21. - Käytä sopivaa funktiota luodaksesi
samples
-taulukon, joka mahdollistaa tietyn määrän arvoja annetulla välillä. - Määritä ensimmäiset kolme argumenttia luodaksesi taulukko
10
yhtä suuresta numerosta välillä5
ja6
. - Varmista, että
6
ei sisällysamples
-taulukkoon.
Ratkaisu
Kiitos palautteestasi!