Python NumPy õpetus algajatele: õppige näidetega

Milles on NumPy Python?

tuim on avatud lähtekoodiga teek, mis on saadaval Python, mis aitab matemaatika-, teadus-, inseneri- ja andmeteaduse programmeerimisel. See on väga kasulik raamatukogu matemaatiliste ja statistiliste toimingute tegemiseks Python. See töötab suurepäraselt mitmemõõtmeliste massiivide ja maatriksi korrutamise jaoks. Seda on lihtne C/-ga integreeridaC++ ja Fortran.

Iga teadusprojekti jaoks on NumPy teadmise tööriist. See on loodud töötama N-dimensioonilise massiivi, lineaaralgebra, juhuslike arvude, Fourier' teisendusega jne.

NumPy on programmeerimiskeel, mis tegeleb mitmemõõtmeliste massiivide ja maatriksitega. Lisaks massiividele ja maatriksitele toetab NumPy suurt hulka matemaatilisi tehteid. Selles osas vaatame läbi põhifunktsioonid, mida peate õpetuse jaoks teadmaTensorFlow. "

Miks kasutada NumPyt?

NumPy on mälu tõhusus, mis tähendab, et see suudab käsitleda suurt hulka andmeid, mis on juurdepääsetavamad kui ükski teine ​​​​teek. Pealegi on NumPyga väga mugav töötada, eriti maatriksi korrutamiseks ja ümberkujundamiseks. Lisaks on NumPy kiire. Tegelikult õpivad TensorFlow ja Scikit kasutama NumPy massiivi, et arvutada maatriksi korrutamine tagaotsas.

NumPy installimine

NumPy teegi installimiseks vaadake meie õpetust Kuidas installida TensorFlow. NumPy on Anacondaga vaikimisi installitud.

Kaugjuhtumil pole NumPy installitud -

NumPy saate installida Anaconda abil:

conda install -c anaconda numpy
  • In Jupyter Märkmik:
import sys
!conda install --yes --prefix {sys.prefix} numpy

Importige NumPy ja kontrollige versiooni

Numpy importimise käsk on järgmine:

import numpy as np

Ülaltoodud kood nimetab Numpy nimeruumi ümber np-ks. See võimaldab meil lisada funktsiooni Numpy, meetodite ja atribuutide ette "np", selle asemel, et kirjutada "numpy". See on tavaline otsetee, mille leiate tüütust kirjandusest

NumPy installitud versiooni kontrollimiseks kasutage allolevat käsku:

print (np.__version__)

Väljund:

1.18.0

Mis on Python NumPy massiiv?

NumPy massiivid on natuke sarnased Python nimekirjad, kuid samal ajal siiski väga erinevad. Teemaga uustulnutele teeme selgeks, mis see täpselt on ja milleks see kasulik on.

Nagu nimigi ütleb, on NumPy massiiv numpy teegi keskne andmestruktuur. Raamatukogu nimi on tegelikult lühend sõnadest "Numeric Python” või „Arv Python".

NumPy massiivi loomine

Lihtsaim viis massiivi loomiseks Numpys on kasutada Python nimekiri

myPythonList = [1,9,8,3]

Pythoni loendi teisendamiseks numpy massiiviks, kasutades objekti np.massiivi.

numpy_array_from_list = np.array(myPythonList)

Loendi sisu kuvamiseks

numpy_array_from_list

Väljund:

array([1, 9, 8, 3])

Praktikas ei ole vaja deklareerida a Python Nimekiri. Operatsiooni saab kombineerida.

a  = np.array([1,9,8,3])

MÄRKUSED: Numpy dokumentatsioonis on kirjas np.ndarray kasutamine massiivi loomiseks. See meetod on siiski soovitatav.

Tuplest saate luua ka numpy massiivi.

Matemaatiline Operamassiivi

Saate massiiviga teha matemaatilisi toiminguid, nagu liitmine, lahutamine, jagamine ja korrutamine. Süntaks on massiivi nimi, millele järgneb operatsioon (+.-,*,/), millele järgneb operand

Näide:

numpy_array_from_list + 10

Väljund:

array([11, 19, 18, 13])

See toiming lisab numpy massiivi igale elemendile 10.

Massiivi kuju

Massiivi kuju saate kontrollida objekti kujuga, millele eelneb massiivi nimi. Samamoodi saab tüüpi kontrollida dtypes abil.

import numpy as np
a  = np.array([1,2,3])
print(a.shape)
print(a.dtype)

(3,)
int64

Täisarv on väärtus ilma kümnendkohata. Kui loote massiivi kümnendkohaga, muutub tüüp ujuvaks.

#### Different type
b  = np.array([1.1,2.0,3.2])
print(b.dtype)

float64

2-mõõtmeline massiiv

Saate lisada mõõtme "," koomaga

Pange tähele, et see peab olema sulgudes []

### 2 dimension
c = np.array([(1,2,3),
              (4,5,6)])
print(c.shape)
(2, 3)

3-mõõtmeline massiiv

Kõrgema mõõtme saab ehitada järgmiselt:

### 3 dimension
d = np.array([
    [[1, 2,3],
        [4, 5, 6]],
    [[7, 8,9],
        [10, 11, 12]]
])
print(d.shape)
(2, 2, 3)
Eesmärk kood
Loo massiiv massiiv([1,2,3])
printida kujund massiiv([.]).kujund

Mis on numpy.zeros()?

numpy.zeros() või np.nullid Python funktsiooni kasutatakse nullidega täis maatriksi loomiseks. numpy.zeros() in Python saab kasutada kaalude lähtestamisel TensorFlow esimese iteratsiooni ja muude statistikaülesannete ajal.

numpy.zeros() funktsioon Süntaks

numpy.zeros(shape, dtype=float, order='C')

Python numpy.zeros() Parameetrid

Siin

  • kuju: on numbilise nullmassiivi kuju
  • Dtüüp: on andmetüüp numbrilistes nullides. See on valikuline. Vaikeväärtus on float64
  • järjekord: Vaikimisi on C, mis on numpy.zeros() jaoks oluline rea stiil Python.

Python numpy.zeros() Näide

import numpy as np
np.zeros((2,2))

Väljund:

array([[0., 0.],
          [0., 0.]])

Numpy nulli näide andmetüübiga

import numpy as np
np.zeros((2,2), dtype=np.int16)

Väljund:

array([[0, 0],
         [0, 0]], dtype=int16)

Mis on numpy.ones()?

np.ones() funktsioon kasutatakse neid täis maatriksi loomiseks. numpy.ones() sisse Python saab kasutada kaalude lähtestamisel TensorFlow esimese iteratsiooni ja muude statistikaülesannete ajal.

Python numpy.ones() Süntaks

numpy.ones(shape, dtype=float, order='C')

Python numpy.ones() Parameetrid

Siin

  • kuju: on np.oneside kuju Python Array
  • Dtüüp: on andmetüüp tühistes. See on valikuline. Vaikeväärtus on float64
  • järjekord: Vaikimisi on C, mis on oluline rea stiil.

Python numpy.ones() 2D massiiv andmetüübi näitega

import numpy as np
np.ones((1,2,3), dtype=np.int16)

Väljund:

array([[[1, 1, 1],        
       [1, 1, 1]]], dtype=int16)

numpy.reshape() funktsioon sisse Python

Python NumPy ümberkujundamine funktsiooni kasutatakse massiivi kujundamiseks ilma selle andmeid muutmata. Mõnel juhul peate võib-olla muutma andmeid laiadest pikkadeks. Selleks saate kasutada funktsiooni np.reshape.

np.reshape() süntaks

numpy.reshape(a, newShape, order='C')

Siin

a: massiiv, mida soovite ümber kujundada

uus Kuju: Kujunevad uued soovid

järjekord: Vaikimisi on C, mis on oluline rea stiil.

NumPy ümberkujundamise näide

import numpy as np
e  = np.array([(1,2,3), (4,5,6)])
print(e)
e.reshape(3,2)

Väljund:

 // Before reshape
[[1 2 3] 
 [4 5 6]]
//After Reshape
array([[1, 2],       
	[3, 4],       
	[5, 6]])

numpy.flatten() sisse Python

Python NumPy Flatten funktsiooni kasutatakse massiivi ühemõõtmelise koopia tagastamiseks. Kui tegelete mõne närvivõrguga (nt convnet), peate massiivi tasandama. Selleks saate kasutada np.flatten() funktsioone.

np.flatten() süntaks

numpy.flatten(order='C')

Siin
järjekord: Vaikimisi on C, mis on oluline rea stiil.

NumPy Flatteni näide

e.flatten()

Väljund:

array([1, 2, 3, 4, 5, 6])

Mis on numpy.hstack() Python?

Numpy.hstack on funktsioon sees Python mida kasutatakse sisendmassiivide järjestuste horisontaalseks virnastamiseks, et luua üks massiiv. Funktsiooni hstack() abil saate andmeid horisontaalselt lisada. See on NumPys väga mugav funktsioon.

Uurime hstacki sisse Python näitega:

Näide:

## Horitzontal Stack
import numpy as np
f = np.array([1,2,3])
g = np.array([4,5,6])
print('Horizontal Append:', np.hstack((f, g)))

Väljund:

Horizontal Append: [1 2 3 4 5 6]

Milles on numpy.vstack() Python?

Numpy.vstack on funktsioon sees Python mida kasutatakse sisendmassiivide järjestuste vertikaalseks virnastamiseks, et luua üks massiiv. Funktsiooni vstack() abil saate andmeid vertikaalselt lisada.

Uurime seda näitega:

Näide:

## Vertical Stack
import numpy as np
f = np.array([1,2,3])
g = np.array([4,5,6])
print('Vertical Append:', np.vstack((f, g)))

Väljund:

Vertical Append: [[1 2 3]
 [4 5 6]]

Pärast NumPy vstacki ja hstacki uurimist õpime näidet NumPys juhuslike arvude genereerimiseks.

Loo juhuslik Numbers NumPy abil

Gaussi jaotuse jaoks juhuslike arvude genereerimiseks kasutage:

numpy.random.normal(loc, scale, size)

Siin

  • Koht: keskmine. Jaotuskeskus
  • Skaala: standardhälve.
  • SUURUS: tagastamiste arv

Näide:

## Generate random nmber from normal distribution
normal_array = np.random.normal(5, 0.5, 10)
print(normal_array)			
[5.56171852 4.84233558 4.65392767 4.946659   4.85165567 5.61211317 4.46704244 5.22675736 4.49888936 4.68731125]

Graafiku korral on jaotus sarnane järgmisele graafikule

Näide juhusliku loomiseks Numbers NumPy abil
Näide juhusliku loomiseks Numbers NumPy abil

NumPy Asarray funktsioon

Funktsiooni asarray() kasutatakse siis, kui soovite teisendada sisendi massiiviks. Sisend võib olla loendid, korteež, ndarray jne.

süntaksit:

numpy.asarray(data, dtype=None, order=None)[source]

Siin

andmed: andmed, mida soovite massiiviks teisendada

dtüüp: See on valikuline argument. Kui pole määratud, tuletatakse andmetüüp sisendandmetest

järjekord: Vaikimisi on C, mis on oluline rea stiil. Teine võimalus on F (Fortani stiilis)

Näide:

Vaatleme järgmist 2-D maatriksit, milles on neli rida ja neli veergu, mis on täidetud 1-ga

import numpy as np
A = np.matrix(np.ones((4,4)))

Kui soovite maatriksi väärtust muuta, ei saa te seda teha. Põhjus on selles, et koopiat pole võimalik muuta.

np.array(A)[2]=2
print(A)			
[[1. 1. 1. 1.]
 [1. 1. 1. 1.] 
 [1. 1. 1. 1.] 
 [1. 1. 1. 1.]]

Maatriks on muutumatu. Kui soovite lisada algsesse massiivi muudatusi, võite kasutada asarray'i. Vaatame, kas siis, kui soovite muuta kolmandate ridade väärtust väärtusega 2, toimub muudatusi.

np.asarray(A)[2]=2
print(A)

Koodi selgitus:

np.asarray(A): teisendab maatriksi A massiiviks

[2]: valige kolmandad read

Väljund:

[[1. 1. 1. 1.] 
      [1. 1. 1. 1.] 
      [2. 2. 2. 2.] # new value 
      [1. 1. 1. 1.]]

Mis on numpy.arange()?

numpy.arange() on sisseehitatud numpy-funktsioon, mis tagastab ndarray-objekti, mis sisaldab kindla intervalli piires ühtlaselt paigutatud väärtusi. Näiteks soovite luua väärtusi vahemikus 1 kuni 10; saate kasutada np.arange() in Python funktsiooni.

süntaksit:

numpy.arange(start, stop, step, dtype)

Python NumPy vahemiku parameetrid:

  • Avaleht: np.arange in intervalli algus Python funktsiooni.
  • Peatus: intervalli lõpp.
  • Samm: väärtuste vaheline kaugus. Vaikimisi samm on 1.
  • Dtüüp: on massiivi väljundi tüüp NumPy arange in jaoks Python.

Näide:

import numpy np
np.arange(1, 11)

Väljund:

array([ 1,  2,  3,  4,  5,  6,  7,  8,  9, 10])

Näide:

Kui soovite selle NumPy arange funktsiooni sammu muuta, sisestage Python Näiteks võite sulgudes lisada kolmanda numbri. See muudab sammu.

import numpy np
np.arange(1, 14, 4)

Väljund:

array([ 1,  5,  9, 13])

NumPy Linspace'i funktsioon

Linspace annab ühtlase vahega proovid.

süntaksit:

numpy.linspace(start, stop, num, endpoint)

Siin

  • Avaleht: jada algusväärtus
  • Peatus: jada lõppväärtus
  • Sisse: genereeritavate proovide arv. Vaikimisi on 50
  • Lõpp-punkt: Kui Tõene (vaikimisi), on stop viimane väärtus. Kui Väär, siis stoppväärtust ei arvestata.

Näide:

Näiteks saab seda kasutada võrdsete vahedega 10 väärtuse loomiseks vahemikus 1 kuni 5.

import numpy as np
np.linspace(1.0, 5.0, num=10)

Väljund:

array([1.        , 1.44444444, 1.88888889, 2.33333333, 2.77777778,       3.22222222, 3.66666667, 4.11111111, 4.55555556, 5.        ])

Kui te ei soovi intervalli viimast numbrit lisada, saate määrata lõpp-punkti väärtuseks false

np.linspace(1.0, 5.0, num=5, endpoint=False)

Väljund:

array([1. , 1.8, 2.6, 3.4, 4.2])

LogSpace NumPy funktsioon sisse Python

LogSpace tagastab logiskaalal paaris vahedega numbrid. Logiruumil on samad parameetrid mis np.linspace'il.

süntaksit:

numpy.logspace(start, stop, num, endpoint)

Näide:

np.logspace(3.0, 4.0, num=4)

Väljund:

array([ 1000. ,  2154.43469003,  4641.58883361, 10000.        ])

Lõpuks, kui soovite kontrollida massiivi elemendi mälumahtu, võite kasutada üksuste suurust

x = np.array([1,2,3], dtype=np.complex128)
x.itemsize

Väljund:

16

Iga element võtab 16 baiti.

Indekseerimine ja sisselõikamine Python

Andmete viilutamine on numpyga triviaalne. Viilutame maatriksi “e”. Pange tähele, et sisse Python, peate ridade või veergude tagastamiseks kasutama sulgusid
Näide:

## Slice
import numpy as np
e  = np.array([(1,2,3), (4,5,6)])
print(e)
[[1 2 3]
 [4 5 6]]

Pidage meeles, et numpy puhul algab esimene massiiv/veerg 0-st.

## First column
print('First row:', e[0])

## Second col
print('Second row:', e[1])

Väljund:

First row: [1 2 3]
Second row: [4 5 6]

In Python, nagu paljud teised keeled,

  • Väärtused enne koma tähistavad ridu
  • Õiguste väärtus tähistab veerge.
  • Kui soovite veergu valida, peate veeruindeksi ette lisama :.
  • : tähendab, et soovite kõiki ridu valitud veerust.
print('Second column:', e[:,1])
Second column: [2 5]

Teise rea kahe esimese väärtuse tagastamiseks. Kasutate : kõigi veergude valimiseks kuni sekundini

## Second Row, two values
  print(e[1, :2])			
  [4 5]

Statistilised funktsioonid sisse Python

NumPy-l on päris mitu kasulikku statistilist funktsiooni massiivi antud elementide minimaalse, maksimumi, protsentiili standardhälbe ja dispersiooni jms leidmiseks. Funktsioone selgitatakse järgmiselt −

Numpy on varustatud tugeva statistilise funktsiooniga, nagu allpool loetletud

funktsioon Nuhklik
min np.min()
max np.max()
Keskmine np.mean()
Mediaan np.mediaan()
Standardhälve np.std()

Kaaluge järgmist massiivi:

Näide:

import numpy as np
normal_array = np.random.normal(5, 0.5, 10)
print(normal_array)

Väljund:

[5.56171852 4.84233558 4.65392767 4.946659   4.85165567 5.61211317 4.46704244 5.22675736 4.49888936 4.68731125]

NumPy statistilise funktsiooni näide

### Min 
print(np.min(normal_array))

### Max 
print(np.max(normal_array))

### Mean 
print(np.mean(normal_array))

### Median
print(np.median(normal_array))

### Sd
print(np.std(normal_array))

Väljund:

4.467042435266913
5.612113171990201
4.934841002270593
4.846995625786663
0.3875019367395316

Mis on numpy dot toode?

Numpy.dot toode on võimas maatriksarvutuste teek. Näiteks saate punktkorrutise arvutada np.dot abil. Numpy.dot korrutis on a ja b punktkorrutis. numpy.dot() sisse Python käsitleb 2D massiive ja teostab maatrikskorrutusi.

süntaksit:

numpy.dot(x, y, out=None)

parameetrid

Siin

X, y: sisendmassiivid. Funktsiooni np.dot() toimimiseks peavad x ja y mõlemad olema 1-D või 2-D

välja: see on 1-D massiivi skalaari tagastamise väljundargument. Vastasel juhul tuleks ndarray tagastada.

Tagastamine

Funktsioon numpy.dot() in Python tagastab kahe massiivi x ja y punktkorrutise. Funktsioon dot() tagastab skalaari, kui nii x kui ka y on 1-D; vastasel juhul tagastab see massiivi. Kui antakse "out", siis see tagastatakse.

Tõstab

Punkti toode sisse Python tekitab ValueError erandi, kui x-i viimane mõõde ei ole sama suur kui y-i teine ​​viimane mõõde.

Näide:

## Linear algebra
### Dot product: product of two arrays
f = np.array([1,2])
g = np.array([4,5])
### 1*4+2*5
np.dot(f, g)

Väljund:

14

Maatrikskorrutamine sisse Python

Funktsiooni Numpy matmul() kasutatakse kahe massiivi maatrikskorrutise tagastamiseks. See toimib järgmiselt

1) 2-D massiivid, tagastab tavalise toote

2) Mõõtmed > 2, toodet käsitletakse maatriksivirna

3) 1-D massiiv viiakse esmalt maatriksiks ja seejärel arvutatakse korrutis

süntaksit:

numpy.matmul(x, y, out=None)

Siin

X, y: sisendmassiivid. skalaarid pole lubatud

välja: see on valikuline parameeter. Tavaliselt salvestatakse väljund ndarrays

Näide:

Samamoodi saab arvutada maatriksite korrutamist np.matmuliga

### Matmul: matruc product of two arrays
h = [[1,2],[3,4]] 
i = [[5,6],[7,8]] 
### 1*5+2*7 = 19
np.matmul(h, i)

Väljund:

array([[19, 22],       
            [43, 50]])

Determinant

Lõpuks, kui teil on vaja determinandi arvutada, võite kasutada np.linalg.det(). Pange tähele, et numpy hoolitseb mõõtmete eest.

Näide:

## Determinant 2*2 matrix
### 5*8-7*6np.linalg.det(i)

Väljund:

-2.000000000000005

kokkuvõte

  • Python on avatud lähtekoodiga teek, mis on saadaval Python, mis aitab matemaatika-, teadus-, inseneri- ja andmeteaduse programmeerimine.
  • numpy.zeros() või np.zeros Python funktsiooni kasutatakse nullidega täis maatriksi loomiseks.
  • numpy.ones() sisse Python saab kasutada kaalude lähtestamisel TensorFlow esimese iteratsiooni ja muude statistikaülesannete ajal.
  • Python Funktsiooni NumPy Reshape kasutatakse massiivi kujundamiseks ilma selle andmeid muutmata.
  • Python Funktsiooni NumPy Flatten kasutatakse massiivi ühemõõtmelise koopia tagastamiseks.
  • Numpy.hstack on funktsioon Python mida kasutatakse sisendmassiivide järjestuste horisontaalseks virnastamiseks, et luua üks massiiv.
  • Numpy.vstack on funktsioon Python mida kasutatakse sisendmassiivide järjestuste vertikaalseks virnastamiseks, et luua üks massiiv.
  • numpy.arange() on sisseehitatud numpy-funktsioon, mis tagastab ndarray-objekti, mis sisaldab kindla intervalli piires ühtlase vahega väärtusi.
  • Toode Numpy.dot on võimas maatriksarvutuste teek.
  • Funktsiooni Numpy matmul() kasutatakse kahe massiivi maatrikskorrutise tagastamiseks.