Python Numpy Opetusohjelma (kanssa Jupyter ja Colab)

Tämä opetusohjelma oli alunperin myötävaikuttanut Justin Johnson.

käytämme Python-ohjelmointikieltä kaikissa tämän kurssin tehtävissä.Python on loistava yleiskäyttöinen ohjelmointikieli omasta, mutta thehelp muutamia suosittuja kirjastoja (numpy, scipy, matplotlib) se tulee powerfulenvironment-tieteellinen laskenta.,

odotamme, että monet teistä on kokemusta Python ja numpy;sillä te muut, tämä osio toimii nopeasti pikakurssin sekä Python ohjelmointi kieli ja sen käyttö scientificcomputing. Esittelemme myös muistikirjat, jotka ovat erittäin kätevä tapa tinkering Python-koodilla. Jotkut teistä ehkä on aikaisempaa tietoa adifferent kieli, tässä tapauksessa suosittelemme myös vertailemalla:NumPy Matlab-käyttäjät,Python T-käyttäjille, ja/orPython SAS-käyttäjille.,

  • Luettelot
  • Sanastoja
  • Määrittää
  • Tuplat
  • Tehtävät
  • Luokat
  • Numpy
    • Ryhmät
    • Array indeksointi
    • Tietotyypit
    • Array matematiikka
    • Yleisradio
    • Numpy Dokumentointi
  • SciPy
    • Kuvaa toimintaa
    • MATLAB-tiedostot
    • Etäisyys kahden pisteen välillä
  • Matplotlib
    • Kuvaaja
    • Subplots
    • Kuvia
  • Jupyter ja Colab Muistikirjat

    Ennen emme sukella, Python, haluaisin lyhyesti puhua muistikirjoja.,Jupyter-muistikirjan avulla voit kirjoittaa ja suorittaa koodin paikallisesti selaimessasi. Jupyter ei usko, että se on erittäin helppo tinker koodilla ja suorittaa sen bitteinä ja paloina; tästä syystä niitä käytetään laajalti tieteellisessä laskennassa.Colab toisaalta on Googlen maku ofJupyter muistikirjat, joka soveltuu erityisesti machinelearning ja data-analyysi ja se toimii täysin pilvessä.,Colab on pohjimmiltaan Jupyter notebook steroideja: se on ilmainen, ei vaadi setup,tulee esiasennettuna monet paketit on helppo jakaa maailman kanssa,ja edut vapaa pääsy laitteiston kiihdyttimiä, kuten Gpu ja TPUs (joitakin varoituksia).

    Suorita opetusohjelma Colabissa (suositeltava). Jos haluat suorittaa tämän opetusohjelma täysin Colab, napsauta Open in Colab rintanappi hyvin alkuun tämän sivun.

    Suorita opetusohjelma Jupyter-muistikirjassa., Jos haluat ajaa kannettavan paikallisesti Jupyter, varmista, että virtuaalinen ympäristö on asennettu oikein (kuten kohti ohjeet), aktivoi se ja sitten ajaa pip install notebook asentaa Jupyter muistikirja. Seuraavaksi, avaa muistikirja ja lataa se hakemistoon valinta klikkaamalla hiiren oikeaa painiketta sivulla ja valitsemalla Save Page As. Sitten cd kyseiseen hakemistoon ja suorita jupyter notebook.

    Tämän pitäisi automaattisesti käynnistää notebook-palvelin .,Jos kaikki toimi oikein, sinun pitäisi nähdä tällainen näyttö, näyttää allavailable muistikirjat nykyisessä hakemistossa. Klikkaa jupyter-notebook-tutorial.ipynbja noudata muistikirjan ohjeita. Muuten, voit jatkaa lukemista thetutorial koodinpätkiä alla.

    Python

    Python on korkean tason dynaamisesti kirjoitetaan multiparadigm ohjelmointi kieli.Python-koodin sanotaan usein olevan melkein kuin pseudokoodi, koska sen avulla voit ilmaista hyvin voimakkaita ajatuksia hyvin harvoissa koodiriveissä samalla kun se on luettavissa., Esimerkiksi, tässä on täytäntöönpanoa klassinen quicksortalgorithm Python:

    Python versiot

    Kuten Janurary 1, 2020, Python on virallisesti pudonnut tuki python2.Tässä luokassa kaikki koodi käyttää Python 3.7. Varmista, että olet käynyt läpi asennusohjeet ja asentanut oikein python3 virtual environment ennen kuin jatkat tämän opetusohjelman.Voit tarkistaa Python versio komentoriviltä jälkeen aktivoimalla environmentby käynnissä python --version.,

    Perustiedot tietotyypit

    Kuten useimmat kielet, Python on useita perustyyppiä kuten kokonaislukuja,kellukkeet, totuusarvot ja merkkijonot. Nämä tietotyypit käyttäytyvät tavoilla, jotka ovat tuttuja muista ohjelmointikielistä.

    Numerot: Kokonaislukuja ja kelluu toimi kuten odottaa muita kieliä:

    Huomaa, että toisin kuin monet kielet, Python ei ole unaarisia lisäys (x++)tai vähennys (x--) toimijat.

    Pythonilla on myös sisäänrakennettuja tyyppejä kompleksilukuja varten;dokumentaatiosta löytyy kaikki detailit.,

    Totuusarvot: Python toteuttaa kaikki tavanomaiset operaattorit Boolen logiikka,mutta käyttää englanti sanoja eikä symbolit (&&, || jne.):

    Jouset: Python on suuri tuki jousille:

    String esineitä on joukko hyödyllisiä menetelmiä; esimerkiksi:

    löydät listan kaikista string menetelmiä dokumentointi.

    Astiat

    Python sisältää useita sisäänrakennettu säiliö tyypit: luettelot, sanakirjat, sarjaa, ja tuplat.,

    Luettelot

    lista on Python vastaa array, mutta on resizeableand voi sisältää elementtejä eri tyyppiä:

    Kuten tavallista, löydät kaikki yksityiskohdat siitä, listsin asiakirjat.

    Viipalointi:lisäksi pääsy luettelo elementtejä yksi kerrallaan, Python providesconcise syntaksi käyttää alaluetteloita; tämä tunnetaan viipalointi:

    Saamme nähdä, viipalointi taas yhteydessä numpy paneelit.,

    Silmukoita: Voit silmukan yli elementit-luettelo, kuten tämä:

    animals = for animal in animals: print(animal)# Prints "cat", "dog", "monkey", each on its own line.

    Jos haluat käyttää indeksi jokaisen elementin sisällä kehon silmukka,käytä sisäänrakennettu enumerate tehtävä:

    Lista käsityksiä:Kun ohjelmointi, usein haluamme muuttaa yhdenlaista tietoa toiseen.,Koska yksinkertainen esimerkki, harkitse seuraavia koodi, joka laskee neliön numerot:

    nums = squares = for x in nums: squares.append(x ** 2)print(squares) # Prints 

    Voit tehdä tämän koodin yksinkertaisempi käyttää luettelon ymmärtäminen:

    nums = squares = print(squares) # Prints 

    Lista käsityksiä voi sisältää myös ehtoja:

    nums = even_squares = print(even_squares) # Prints ""

    Sanastoja

    sanakirja, kaupat (avain, arvo) – pareja, samanlainen Map Java oran objekti Javascript., Voit käyttää sitä näin:

    löydät kaikki sinun tarvitsee tietää dictionariesin asiakirjat.

    Silmukoita: Se on helppo kerrata avaimet sanakirja:

    Jos haluat käyttää avaimet ja niiden arvot, käytä items menetelmä:

    Sanakirja käsityksiä:Nämä ovat samanlainen lista käsityksiä, mutta voit helposti constructdictionaries. Esimerkiksi:

    nums = even_num_to_square = {x: x ** 2 for x in nums if x % 2 == 0}print(even_num_to_square) # Prints "{0: 0, 2: 4, 4: 16}"

    Määrittää

    joukko on järjestämätön kokoelma erillisiä elementtejä., Koska yksinkertainen esimerkki, harkita seuraavia:

    Kuten tavallista, kaikki haluat tietää noin sarjaa voidaan foundin asiakirjat.,

    Silmukoita:Iteroimalla yli setti on sama syntaksi kuin iteroimalla yli luettelo, mutta koska sarjat ovat järjestämättömiä, et voi tehdä oletuksia orderin, joka käyt elementit sarja:

    animals = {'cat', 'dog', 'fish'}for idx, animal in enumerate(animals): print('#%d: %s' % (idx + 1, animal))# Prints "#1: fish", "#2: dog", "#3: cat"

    Aseta käsityksiä:Kuten listoja ja sanakirjoja, voimme helposti rakentaa sarjaa käyttäen asettaa käsityksiä:

    from math import sqrtnums = {int(sqrt(x)) for x in range(30)}print(nums) # Prints "{0, 1, 2, 3, 4, 5}"

    Tuplat

    monikko on (muuttumaton) järjestetty lista arvoja.,Tuple on monella tapaa samanlainen kuin Luettelo; Yksi tärkeimmistä eroista on, että sitä voidaan käyttää avaimina sanakirjoissa ja sarjojen elementteinä, kun taas luettelot eivät.Tässä on triviaali esimerkki:

    asiakirjat on enemmän tietoa tuplat.

    funktiot

    Python funktiot määritellään käyttäen def avainsanaa. Esimerkiksi:

    – Meillä on usein määritellä toiminnot ottaa vapaaehtoinen avainsanan argumentteja, kuten tämä:

    Siellä on paljon enemmän tietoa Python-tehtäviä asiakirjoissa.,

    Luokat

    syntaksi määritellään luokkia Python on yksinkertainen:

    Voit lukea paljon lisää Python classesin asiakirjat.

    Numpy

    Numpy on core library-tieteellinen laskenta Python.Se tarjoaa korkean suorituskyvyn moniulotteinen array esine, ja työkalut kanssa thesearrays. Jos olet jo perehtynyt MATLAB, saatat löytäähyvä opetusohjelma hyödyllistä päästä alkuun Numpy.

    Taulukot

    numpy array on ruudukon arvot, kaikki samaa tyyppiä, ja on indeksoitu monikko ofnonnegative kokonaislukuja., Määrä mitat on sijoitus array, luonne array on monikko kokonaislukuja antaa koko array pitkin jokaisen ulottuvuus.

    Voimme alustaa numpy paneelit sisäkkäisiä Python luettelot,ja käyttää elementtejä käyttämällä hakasulkeita:

    Numpy tarjoaa myös monia toimintoja, luoda taulukoita:

    Voit lukea muita menetelmiä array creationin asiakirjat.

    Array indeksointi

    Numpy tarjoaa useita tapoja indeksinä taulukot.

    Slicing:Python-listojen tapaan numpy arrays voidaan viipaloida.,Koska taulukot voivat olla moniulotteisia, sinun täytyy määrittää siivu kunkin dimensionof array:

    Voit myös sekoittaa kokonaisluku indeksointi siivu indeksointi.Kuitenkin, näin saadaan joukko alempi sijoitus kuin alkuperäinen jono.Huomaa, että tämä on aivan erilainen siten, että MATLAB käsittelee arrayslicing:

    Kokonaisluku array indeksointi:Kun indeksi numpy paneelit käyttäen viipalointi, tuloksena array viewwill aina olla subarray alkuperäisen array. Sen sijaan kokonaisluku arrayindexing avulla voit rakentaa mielivaltaisia taulukoita käyttäen tietoja anotherarray., Tässä on esimerkki:

    Yksi hyödyllinen temppu kokonaisluku array indeksointi on valitsemalla tai muuntuva oneelement alkaen jokainen rivi matriisi:

    Boolean-taulukon indeksointi:Boolean-taulukon indeksointi voit poimia mielivaltaisia elementtejä array.Usein tämän tyyppinen indeksointi käytetään valitsemaan elementtejä arraythat täyttävät jonkin ehdon. Tässä on esimerkki:

    lyhyyden vuoksi olemme jättäneet pois paljon yksityiskohtia numpy taulukon indeksointi;jos haluat tietää enemmän shouldread asiakirjat.

    Datatyypit

    jokainen numpy-array on samantyyppisten alkuaineiden ruudukko.,Numpy tarjoaa suuren joukon numeerisia tietotyyppejä, joita voit käyttää matriisien rakentamiseen.Numpy yrittää arvata, tietotyyppi, kun luot taulukon, mutta toimintoja, jotka constructarrays yleensä myös valinnainen argumentti erikseen määritellä tietotyyppi.Tässä esimerkki:

    voit lukea kaiken numpy datatypesistä dokumentaatiosta.,

    Array matematiikka

    Perus matemaattisia toimintoja alkioittain toimivat taulukot, ja ovat availableboth kuin operaattorin ylikuormitusta ja toiminnot numpy-moduuli:

    Huomaa, että toisin kuin MATLAB, * on kertolasku alkioittain, ei matrixmultiplication. Me sen sijaan käyttää dot toiminto laskea innerproducts vektorit, lisääntyä vektori, matriisi, ja tomultiply matriisit., dot on saatavana sekä toiminto numpymodule ja esimerkiksi menetelmä joukko esineitä:

    Numpy tarjoaa monia hyödyllisiä toimintoja, suorittaa laskutoimituksia onarrays, joka on yksi eniten hyötyä on sum:

    löydät koko luettelo matemaattisia toimintoja tarjoamia numpyin asiakirjat.

    Lukuun ottamatta tietojenkäsittelyn matemaattisia tehtäviä käyttäen paneelit, me frequentlyneed muokata tai muuten käsitellä tietoja paneelit., Yksinkertaisin exampleof tämän tyyppinen toiminta on osaksi matriisi; saattamaan matriisi,yksinkertaisesti käyttää T ominaisuus array esine:

    Numpy tarjoaa paljon enemmän toimintoja manipuloimalla taulukot; voit nähdä koko listaus asiakirjat.

    Yleisradio

    Yleisradio on tehokas mekanismi, jonka avulla numpy työskennellä paneelit differentshapes suorittaessaan laskutoimituksia. Usein meillä on pienempi array ja alarger array, ja haluamme käyttää pienempi joukko useita kertoja suorittaa joitakin operationon suurempi joukko.,esimerkiksi

    oletetaan, että haluamme lisätä vakiovektorin matriisin eakrowiin. Voisimme tehdä sen näin:

    Tämä toimii, mutta kun matrix x on erittäin suuri, tietojenkäsittelyn nimenomainen loopin Python voisi olla hidas. Huomaa, että lisäämällä vector v jokaisen rivin matriisinx vastaa muodostavat matriisin vv pinoamalla useita kopioita v pystysuunnassa,sitten suorittamalla alkioittain summattu x ja vv., Voisimme toteuttaa kehittämiseksi, kuten tämä:

    Numpy yleisradio antaa meille mahdollisuuden tehdä tämän laskenta ilman actuallycreating useita kopioita v., Harkitse tämän version käyttäen lähetykset:

    linjaa y = x + v toimii vaikka x on muotoa (4, 3) ja v on muotoa(3,) koska radio-ja televisiotoimintaa; tämä linja toimii, jos v todella oli kunnossa (4, 3),jossa jokainen rivi oli kopio v, ja summa oli suoritettu alkioittain.,

    Yleisradio kaksi paneelit yhdessä seuraa näitä sääntöjä:

    1. Jos taulukot eivät ole sama sijoitus, prepend muoto alempi sijoitus arraywith 1s, kunnes molemmat muodot ovat yhtä pitkiä.
    2. kaksi matriisia sanotaan olevan yhteensopiva ulottuvuus, jos ne ovat samesize dimension, tai jos yksi paneelit on kokoa 1, että ulottuvuus.
    3. taulukot voidaan lähettää yhdessä, jos ne ovat yhteensopivia kaikissa ulottuvuuksissa.
    4. lähetysten jälkeen jokainen matriisi käyttäytyy ikään kuin sillä olisi kahden tulorakenteen muotojen elementwisemaksimi.,
    5. jokin ulottuvuus, jossa yksi jono oli koko 1 ja toinen joukko oli kooltaan suurempi kuin 1,ensimmäinen array käyttäytyy ikään kuin se olisi kopioitu pitkin, että ulottuvuus

    Jos tämä selitys ei ole mitään järkeä, kokeile lukeminen explanationfrom, että documentationor tämä selitys.

    lähetyksiä tukevia funktioita kutsutaan yleisfunktioiksi. Voit löytää luettelon kaikista yleisistä toiminnoista dokumentaatiossa.,

    Tässä on muutamia sovelluksia, yleisradio:

    Yleisradio tyypillisesti tekee koodi tiiviimmäksi ja nopeammin, joten sinun pitäisi pyrkiä käyttämään sitä, jos mahdollista.

    Numpy Dokumentointi

    – Tämä lyhyt katsaus on koskettanut monia tärkeitä asioita, jotka sinun täytyy tiedusteli noin numpy, mutta on kaukana täydellisestä. Tutustu thenumpy referenceto lisätietoja numpy.

    SciPy

    Numpy tarjoaa suorituskykyisen moniulotteisen matriisin ja perustyökalut, joilla nämä Matriisit voidaan kompuroida ja manipuloida.,Scipiruilds tästä, ja antaa useita toimintoja, jotka toimivat numpy taulukoita ja ovat hyödyllisiä erityyppisiä tieteellisiä ja teknisiä sovelluksia.

    paras tapa tutustua Scipyyn on tobrowse the documentation.Korostamme joitakin Scipyn osia, jotka saattavat olla hyödyllisiä tälle luokalle.

    Kuvaoperaatiot

    SciPy tarjoaa joitain perustoimintoja kuvien kanssa työskentelyyn.Esimerkiksi, se on toimintoja, lukea kuvia levyltä numpy paneelit,kirjoittaa numpy paneelit levylle kuvia ja muuttaa kuvien kokoa.,Tässä on yksinkertainen esimerkki, joka esittelee näitä toimintoja:

    Vasemmalla: alkuperäinen kuva. Oikea: sävytetty ja uusittu kuva.

    MATLAB-tiedostot

    toiminnot scipy.io.loadmat ja scipy.io.savemat voit lukea andwrite MATLAB tiedostoja. Voit lukea niistä asiakirjoista.

    pisteiden välinen Etäisyys

    SciPy määritellään joitakin hyödyllisiä toimintoja computing etäisyydet sarjaa pistettä.,

    toiminto scipy.spatial.distance.pdist laskee etäisyys kaikki pairsof pistettä annetuissa:

    Voit lukea kaikki yksityiskohdat tästä functionin asiakirjat.

    vastaava toiminto (scipy.spatial.distance.cdist) laskee etäisyys kaikki pairsacross kaksi pistettä; voit lukea itin asiakirjat.

    Matplotlib

    Matplotlib on piirtämistä kirjasto.Tässä osiossa antaa lyhyt johdatus matplotlib.pyplot moduuli,joka tarjoaa piirtämistä järjestelmä samanlainen kuin MATLAB.,

    Kuvaaja

    tärkein tehtävä matplotlib on plot,jonka avulla voit piirtää 2D tietoja. Tässä on yksinkertainen esimerkki:

    Käynnissä tämä koodi tuottaa seuraavan tontti:

    vain vähän ylimääräistä työtä, jonka me voimme helposti juoni useita linesat kerran, ja lisää otsikko, legenda, ja akseli tarroja:

    Voit lukea paljon lisää plot functionin asiakirjat.,

    Subplots

    Voit piirtää eri asioita samassa kuvassa käyttää subplot toiminto.Tässä on esimerkki:

    Voit lukea paljon lisää subplot functionin asiakirjat.

    Kuvat

    Voit käyttää imshow toiminto näyttää kuvia. Tässä on esimerkki:

    Share

    Vastaa

    Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *