Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele 1D-Taulukoiden Luontifunktiot | Numpy-Perusteet
Ultimate NumPy

book1D-Taulukoiden Luontifunktiot

Perinteisen taulukon luonnin lisäksi, jossa määritellään alkiot suoraan, numpy mahdollistaa myös taulukon automaattisen luonnin erityisillä funktioilla. Tässä ovat kaksi yleisintä funktiota, joilla luodaan ainoastaan yksiulotteisia taulukoita:

  • arange();
  • linspace().

arange()

numpy.arange()-funktio muistuttaa Pythonin sisäänrakennettua range()-funktiota; kuitenkin se palauttaa ndarray-olion. Käytännössä se luo taulukon, jonka alkiot ovat tasavälein annetulla välillä.

Esimerkiksi, jos annettu väli on 010 ja askel on 2, tuloksena oleva taulukko on: [0, 2, 4, 6, 8].

Tässä ovat kolme tärkeintä parametria ja niiden merkitys:

  1. start:

    • Oletusarvo: 0;
    • Määrittää taulukon ensimmäisen alkion.
  2. stop:

    • Ei oletusarvoa;
    • Määrittää päätepisteen, jota ei sisällytetä taulukkoon.
  3. step:

    • Oletusarvo: 1;
    • Määrittää välin, joka lisätään jokaiseen seuraavaan alkioon.
12345678910
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)
copy

linspace()

Vaikka arange() voi käsitellä reaalilukuja, numpy.linspace() on suositeltavampi kuin numpy.arange() tähän tarkoitukseen, koska arange() voi tuottaa odottamattomia tuloksia liukulukutarkkuusvirheiden vuoksi askelia laskettaessa. Sen sijaan linspace() tuottaa tietyn määrän tasavälein sijoitettuja pisteitä annetulla välillä, mikä takaa tarkkuuden ja johdonmukaisuuden.

linspace()-funktiossa käytetään step-parametria määrittämään näytteiden määrä (lukujen määrä) annetulla välillä (num oletuksena) 50-parametrin sijaan.

1234567
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)
copy

Endpoint

endpoint-parametri määrittää, sisällytetäänkö stop-arvo. Oletuksena se on True (sisällytetään). Jos se asetetaan arvoon False, stop-arvo jätetään pois, mikä pienentää askelväliä hieman.

Alla on vertailu array_inclusive ja array_exclusive:

1234567
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)
copy

Kun endpoint=True, väli [0,1][0, 1] jaetaan neljään yhtä suureen osaan ja päätepiste (1) sisältyy mukaan, jolloin askelkooksi tulee (10)/4=0.25(1 - 0) / 4 = 0.25.

Kun endpoint=False, väli [0,1)[0, 1) jaetaan viiteen yhtä suureen osaan, koska päätepiste jätetään pois, jolloin askelkooksi tulee (10)/5=0.2(1 - 0) / 5 = 0.2.

Tehtävä

Swipe to start coding

  1. Käytä arange()-funktiota luodaksesi even_numbers-taulukon.
  2. Määritä argumentit luodaksesi parillisten lukujen taulukon väliltä 221 (ei sisällä 21:tä).
  3. Käytä sopivaa funktiota luodaksesi samples-taulukon, jossa voidaan määrittää arvojen määrä annetulla välillä.
  4. Määritä kolme ensimmäistä argumenttia luodaksesi taulukon, jossa on 10 tasavälein sijoitettua lukua väliltä 56.
  5. Varmista, että 6 ei sisälly samples-taulukkoon.

Ratkaisu

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 1. Luku 4
single

single

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme

Suggested prompts:

Can you explain the difference between arange() and linspace() in more detail?

What are some common use cases for arange() and linspace()?

How does floating-point precision affect the results of arange()?

close

Awesome!

Completion rate improved to 3.7

book1D-Taulukoiden Luontifunktiot

Pyyhkäise näyttääksesi valikon

Perinteisen taulukon luonnin lisäksi, jossa määritellään alkiot suoraan, numpy mahdollistaa myös taulukon automaattisen luonnin erityisillä funktioilla. Tässä ovat kaksi yleisintä funktiota, joilla luodaan ainoastaan yksiulotteisia taulukoita:

  • arange();
  • linspace().

arange()

numpy.arange()-funktio muistuttaa Pythonin sisäänrakennettua range()-funktiota; kuitenkin se palauttaa ndarray-olion. Käytännössä se luo taulukon, jonka alkiot ovat tasavälein annetulla välillä.

Esimerkiksi, jos annettu väli on 010 ja askel on 2, tuloksena oleva taulukko on: [0, 2, 4, 6, 8].

Tässä ovat kolme tärkeintä parametria ja niiden merkitys:

  1. start:

    • Oletusarvo: 0;
    • Määrittää taulukon ensimmäisen alkion.
  2. stop:

    • Ei oletusarvoa;
    • Määrittää päätepisteen, jota ei sisällytetä taulukkoon.
  3. step:

    • Oletusarvo: 1;
    • Määrittää välin, joka lisätään jokaiseen seuraavaan alkioon.
12345678910
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)
copy

linspace()

Vaikka arange() voi käsitellä reaalilukuja, numpy.linspace() on suositeltavampi kuin numpy.arange() tähän tarkoitukseen, koska arange() voi tuottaa odottamattomia tuloksia liukulukutarkkuusvirheiden vuoksi askelia laskettaessa. Sen sijaan linspace() tuottaa tietyn määrän tasavälein sijoitettuja pisteitä annetulla välillä, mikä takaa tarkkuuden ja johdonmukaisuuden.

linspace()-funktiossa käytetään step-parametria määrittämään näytteiden määrä (lukujen määrä) annetulla välillä (num oletuksena) 50-parametrin sijaan.

1234567
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)
copy

Endpoint

endpoint-parametri määrittää, sisällytetäänkö stop-arvo. Oletuksena se on True (sisällytetään). Jos se asetetaan arvoon False, stop-arvo jätetään pois, mikä pienentää askelväliä hieman.

Alla on vertailu array_inclusive ja array_exclusive:

1234567
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)
copy

Kun endpoint=True, väli [0,1][0, 1] jaetaan neljään yhtä suureen osaan ja päätepiste (1) sisältyy mukaan, jolloin askelkooksi tulee (10)/4=0.25(1 - 0) / 4 = 0.25.

Kun endpoint=False, väli [0,1)[0, 1) jaetaan viiteen yhtä suureen osaan, koska päätepiste jätetään pois, jolloin askelkooksi tulee (10)/5=0.2(1 - 0) / 5 = 0.2.

Tehtävä

Swipe to start coding

  1. Käytä arange()-funktiota luodaksesi even_numbers-taulukon.
  2. Määritä argumentit luodaksesi parillisten lukujen taulukon väliltä 221 (ei sisällä 21:tä).
  3. Käytä sopivaa funktiota luodaksesi samples-taulukon, jossa voidaan määrittää arvojen määrä annetulla välillä.
  4. Määritä kolme ensimmäistä argumenttia luodaksesi taulukon, jossa on 10 tasavälein sijoitettua lukua väliltä 56.
  5. Varmista, että 6 ei sisälly samples-taulukkoon.

Ratkaisu

Switch to desktopVaihda työpöytään todellista harjoitusta vartenJatka siitä, missä olet käyttämällä jotakin alla olevista vaihtoehdoista
Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 1. Luku 4
single

single

some-alt