Python NumPy-veiledning for nybegynnere: Lær med eksempler

Hva er NumPy i Python?

nusset er et åpen kildekode-bibliotek tilgjengelig i Python, som hjelper til med matematisk, vitenskapelig, ingeniør- og datavitenskapelig programmering. Det er et veldig nyttig bibliotek å utføre matematiske og statistiske operasjoner i Python. Det fungerer perfekt for flerdimensjonale arrays og matrisemultiplikasjon. Det er enkelt å integrere med C/C++ og Fortran.

For ethvert vitenskapelig prosjekt er NumPy verktøyet å vite. Den er bygget for å fungere med N-dimensjonal matrise, lineær algebra, tilfeldig tall, Fourier-transformasjon, etc.

NumPy er et programmeringsspråk som omhandler flerdimensjonale matriser og matriser. På toppen av matrisene og matrisene støtter NumPy et stort antall matematiske operasjoner. I denne delen vil vi gjennomgå de essensielle funksjonene du trenger å vite for opplæringen på 'tensorflow».

Hvorfor bruke NumPy?

NumPy er minneeffektivitet, noe som betyr at den kan håndtere den enorme mengden data som er mer tilgjengelig enn noe annet bibliotek. Dessuten er NumPy veldig praktisk å jobbe med, spesielt for matrisemultiplikasjon og omforming. På toppen av det er NumPy rask. Faktisk lærer TensorFlow og Scikit å bruke NumPy-array for å beregne matrisemultiplikasjonen i bakenden.

Hvordan installere NumPy

For å installere NumPy-biblioteket, se veiledningen vår Hvordan installere TensorFlow. NumPy er installert som standard med Anaconda.

I eksternt tilfelle er NumPy ikke installert-

Du kan installere NumPy ved å bruke Anaconda:

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

Importer NumPy og sjekk versjon

Kommandoen for å importere numpy er:

import numpy as np

Koden ovenfor gir nytt navn til Numpy-navneområdet til np. Dette tillater oss å prefiksere Numpy-funksjon, metoder og attributter med "np" i stedet for å skrive "numpy." Det er standard snarveien du finner i numpy-litteraturen

For å sjekke din installerte versjon av NumPy, bruk kommandoen nedenfor:

print (np.__version__)

Utgang:

1.18.0

Hva er Python NumPy Array?

NumPy-matriser er litt som Python lister, men likevel veldig mye forskjellige på samme tid. For de av dere som er nye i temaet, la oss avklare hva det er og hva det er bra for.

Som navnet på en måte gir bort, er en NumPy-array en sentral datastruktur i numpy-biblioteket. Bibliotekets navn er faktisk en forkortelse for "Numeric Python" eller "Numerisk Python".

Opprette en NumPy-matrise

Den enkleste måten å lage en matrise på i Numpy er å bruke Python Liste

myPythonList = [1,9,8,3]

For å konvertere pythonliste til en numpy array ved å bruke objektet np.array.

numpy_array_from_list = np.array(myPythonList)

For å vise innholdet i listen

numpy_array_from_list

Utgang:

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

I praksis er det ikke nødvendig å erklære en Python Liste. Operasjonen kan kombineres.

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

MERKNADER: Numpy-dokumentasjonen angir bruk av np.ndarray for å lage en matrise. Dette er imidlertid den anbefalte metoden.

Du kan også lage en numpy array fra en Tuple.

matematisk Operasjoner på en Array

Du kan utføre matematiske operasjoner som addisjoner, subtraksjon, divisjon og multiplikasjon på en matrise. Syntaksen er matrisenavnet etterfulgt av operasjonen (+.-,*,/) etterfulgt av operanden

Eksempel:

numpy_array_from_list + 10

Utgang:

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

Denne operasjonen legger til 10 til hvert element i numpy-matrisen.

Shape of Array

Du kan sjekke formen på matrisen med objektformen foran med navnet på matrisen. På samme måte kan du sjekke typen med dtypes.

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

(3,)
int64

Et heltall er en verdi uten desimal. Hvis du oppretter en matrise med desimal, vil typen endres til flytende.

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

float64

2 Dimension Array

Du kan legge til en dimensjon med et ","koma

Merk at den må være innenfor parentesen []

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

3 Dimension Array

Høyere dimensjoner kan konstrueres som følger:

### 3 dimension
d = np.array([
    [[1, 2,3],
        [4, 5, 6]],
    [[7, 8,9],
        [10, 11, 12]]
])
print(d.shape)
(2, 2, 3)
Målet Kode
Opprett array array([1,2,3])
skrive ut formen array([.]).form

Hva er numpy.zeros()?

numpy.zeros() eller np.null Python funksjonen brukes til å lage en matrise full av nuller. numpy.zeros() i Python kan brukes når du initialiserer vektene under den første iterasjonen i TensorFlow og andre statistikkoppgaver.

numpy.zeros() funksjon Syntaks

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

Python numpy.zeros() Parametere

Her

  • Form: er formen til null-matrisen
  • Dtype: er datatypen i numpy nuller. Det er valgfritt. Standardverdien er float64
  • Kontakt: Standard er C som er en viktig radstil for numpy.zeros() i Python.

Python numpy.zeros() Eksempel

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

Utgang:

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

Eksempel på numpy zero med Datatype

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

Utgang:

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

Hva er numpy.ones()?

np.ones() funksjon brukes til å lage en matrise full av enere. numpy.ones() i Python kan brukes når du initialiserer vektene under den første iterasjonen i TensorFlow og andre statistikkoppgaver.

Python numpy.ones() Syntaks

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

Python numpy.ones() Parametere

Her

  • Form: er formen på np.onene Python Array
  • Dtype: er datatypen i numpy ones. Det er valgfritt. Standardverdien er float64
  • Kontakt: Standard er C som er en viktig radstil.

Python numpy.ones() 2D-array med datatypeeksempel

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

Utgang:

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

numpy.reshape() funksjon i Python

Python NumPy omforme funksjonen brukes til å forme en matrise uten å endre dataene. I noen tilfeller kan det hende du må omforme dataene fra brede til lange. Du kan bruke funksjonen np.reshape til dette.

Syntaks for np.reshape()

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

Her

a: Array som du vil omforme

newShape: De nye ønskene former

Kontakt: Standard er C som er en viktig radstil.

Eksempel på NumPy Reshape

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

Utgang:

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

numpy.flatten() i Python

Python NumPy Flatten funksjonen brukes til å returnere en kopi av matrisen i én dimensjon. Når du arbeider med noen nevrale nettverk som convnet, må du flate ut arrayet. Du kan bruke np.flatten()-funksjonene til dette.

Syntaks for np.flatten()

numpy.flatten(order='C')

Her
Kontakt: Standard er C som er en viktig radstil.

Eksempel på NumPy Flatten

e.flatten()

Utgang:

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

Hva er numpy.hstack() i Python?

Numpy.hstack er en funksjon i Python som brukes til å stable sekvenser av inngangsmatriser horisontalt for å lage en enkelt matrise. Med funksjonen hstack() kan du legge til data horisontalt. Det er en veldig praktisk funksjon i NumPy.

La oss studere hstack inn Python med et eksempel:

Eksempel:

## 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)))

Utgang:

Horizontal Append: [1 2 3 4 5 6]

Hva er numpy.vstack() i Python?

Numpy.vstack er en funksjon i Python som brukes til å stable sekvenser av inngangsmatriser vertikalt for å lage en enkelt matrise. Med vstack()-funksjonen kan du legge til data vertikalt.

La oss studere det med et eksempel:

Eksempel:

## 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)))

Utgang:

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

Etter å ha studert NumPy vstack og hstack, la oss lære et eksempel for å generere tilfeldige tall i NumPy.

Generer tilfeldig Numbers bruker NumPy

For å generere tilfeldige tall for gaussisk distribusjon, bruk:

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

Her

  • Sted: gjennomsnittet. Sentrum for distribusjon
  • Skala: standardavvik.
  • Størrelse: antall returer

Eksempel:

## 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]

Hvis plottet vil fordelingen være lik følgende plott

Eksempel for å generere tilfeldig Numbers bruker NumPy
Eksempel for å generere tilfeldig Numbers bruker NumPy

NumPy Asarray-funksjon

Funksjonen asarray() brukes når du vil konvertere en inngang til en matrise. Inndataene kan være en lister, tuppel, ndarray, etc.

Syntaks:

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

Her

dato: Data som du vil konvertere til en matrise

dtype: Dette er et valgfritt argument. Hvis ikke spesifisert, utledes datatypen fra inndataene

Kontakt: Standard er C som er en viktig radstil. Et annet alternativ er F (Fortan-stil)

Eksempel:

Tenk på følgende 2D-matrise med fire rader og fire kolonner fylt med 1

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

Hvis du vil endre verdien på matrisen, kan du ikke. Årsaken er at det ikke er mulig å endre en kopi.

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

Matrise er uforanderlig. Du kan bruke asarray hvis du vil legge til modifikasjon i den originale matrisen. La oss se om det skjer noen endring når du vil endre verdien på de tredje radene med verdien 2.

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

Kodeforklaring:

np.asarray(A): konverterer matrisen A til en matrise

[2]: velg den tredje raden

Utgang:

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

Hva er numpy.arange()?

numpy.arange() er en innebygd numpy-funksjon som returnerer et ndarray-objekt som inneholder jevnt fordelte verdier innenfor et definert intervall. Du vil for eksempel opprette verdier fra 1 til 10; du kan bruke np.arange() i Python funksjon.

Syntaks:

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

Python NumPy arange parametere:

  • Start: Start av intervall for np.arrange in Python funksjon.
  • Stopp: Slutt på intervall.
  • Trinn: Avstand mellom verdier. Standardtrinn er 1.
  • Dtype: Er en type array-utgang for NumPy arange in Python.

Eksempel:

import numpy np
np.arange(1, 11)

Utgang:

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

Eksempel:

Hvis du ønsker å endre trinnet i denne NumPy-arrangementet, funksjonen i Python for eksempel kan du legge til et tredje tall i parentes. Det vil endre trinnet.

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

Utgang:

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

NumPy Linspace-funksjon

Linspace gir jevnt fordelte prøver.

Syntaks:

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

Her

  • Start: Startverdi for sekvensen
  • Stopp: Sluttverdi for sekvensen
  • I: Antall prøver som skal genereres. Standard er 50
  • Endpoint: Hvis True (standard), er stopp den siste verdien. Hvis False, er stoppverdien ikke inkludert.

Eksempel:

Den kan for eksempel brukes til å lage 10 verdier fra 1 til 5 jevnt fordelt.

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

Utgang:

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

Hvis du ikke ønsker å inkludere det siste sifferet i intervallet, kan du sette endepunkt til usant

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

Utgang:

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

LogSpace NumPy-funksjon i Python

LogSpace returnerer tall med jevne mellomrom på en loggskala. Logspace har samme parametere som np.linspace.

Syntaks:

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

Eksempel:

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

Utgang:

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

Til slutt, hvis du vil sjekke minnestørrelsen til et element i en matrise, kan du bruke elementstørrelse

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

Utgang:

16

Hvert element tar 16 byte.

Indeksering og skjæring inn Python

Slicing data er trivielt med numpy. Vi vil kutte matrisen "e". Merk at i Python, må du bruke parentesene for å returnere radene eller kolonnene
Eksempel:

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

Husk at med numpy starter den første matrisen/kolonnen på 0.

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

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

Utgang:

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

In Python, som mange andre språk,

  • Verdiene før kommaet står for radene
  • Verdien på rettighetene står for kolonnene.
  • Hvis du vil velge en kolonne, må du legge til : før kolonneindeksen.
  • : betyr at du vil ha alle radene fra den valgte kolonnen.
print('Second column:', e[:,1])
Second column: [2 5]

For å returnere de to første verdiene i den andre raden. Du bruker : for å velge alle kolonnene opp til den andre

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

Statistiske funksjoner i Python

NumPy har ganske mange nyttige statistiske funksjoner for å finne minimum, maksimum, persentil standardavvik og varians, etc fra de gitte elementene i matrisen. Funksjonene er forklart som følger −

Numpy er utstyrt med den robuste statistiske funksjonen som er oppført nedenfor

Funksjon Klumpete
Min np.min()
max np.max()
Mener np.mean()
median np.median()
Standardavvik np.std()

Tenk på følgende array:

Eksempel:

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

Utgang:

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

Eksempel på NumPy Statistisk funksjon

### 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))

Utgang:

4.467042435266913
5.612113171990201
4.934841002270593
4.846995625786663
0.3875019367395316

Hva er numpy dot-produkt?

Numpy.dot-produkt er et kraftig bibliotek for matriseberegning. For eksempel kan du beregne dot-produktet med np.dot. Numpy.dot-produktet er prikkproduktet til a og b. numpy.dot() i Python håndterer 2D-matrisene og utfører matrisemultiplikasjoner.

Syntaks:

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

Parametre

Her

x, y: Inndatamatriser. x og y må begge være 1-D eller 2-D for at np.dot()-funksjonen skal fungere

ut: Dette er utgangsargumentet for 1-D array skalar som skal returneres. Ellers bør ndarray returneres.

Returer

Funksjonen numpy.dot() in Python returnerer et punktprodukt av to matriser x og y. Dot()-funksjonen returnerer en skalar hvis både x og y er 1-D; ellers returnerer den en matrise. Hvis 'out' er gitt, returneres den.

høyninger

Prikk produktet inn Python reiser et ValueError-unntak hvis den siste dimensjonen til x ikke har samme størrelse som den nest siste dimensjonen til y.

Eksempel:

## 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)

Utgang:

14

Matrisemultiplikasjon inn Python

Numpy matmul()-funksjonen brukes til å returnere matriseproduktet av 2 matriser. Her er hvordan det fungerer

1) 2D-matriser, det returnerer normalt produkt

2) Dimensjoner > 2, produktet behandles som en stabel av matrise

3) 1-D-array blir først forfremmet til en matrise, og deretter beregnes produktet

Syntaks:

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

Her

x, y: Inndatamatriser. skalarer ikke tillatt

ut: Dette er valgfri parameter. Vanligvis lagres utdata i ndarray

Eksempel:

På samme måte kan du beregne matrismultiplikasjon med np.matmul

### 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)

Utgang:

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

determinant

Sist men ikke minst, hvis du trenger å beregne determinanten, kan du bruke np.linalg.det(). Merk at numpy tar seg av dimensjonen.

Eksempel:

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

Utgang:

-2.000000000000005

Sammendrag

  • Python er et åpen kildekode-bibliotek tilgjengelig i Python, som hjelper i matematisk, vitenskapelig, ingeniørfag og datavitenskapelig programmering.
  • numpy.zeros() eller np.zeros Python funksjonen brukes til å lage en matrise full av nuller.
  • numpy.ones() i Python kan brukes når du initialiserer vektene under den første iterasjonen i TensorFlow og andre statistikkoppgaver.
  • Python NumPy Reshape-funksjonen brukes til å forme en matrise uten å endre dataene.
  • Python NumPy Flatten-funksjonen brukes til å returnere en kopi av matrisen i en-dimensjon.
  • Numpy.hstack er en funksjon i Python som brukes til å stable sekvenser av inngangsmatriser horisontalt for å lage en enkelt matrise.
  • Numpy.vstack er en funksjon i Python som brukes til å stable sekvenser av inngangsmatriser vertikalt for å lage en enkelt matrise.
  • numpy.arange() er en innebygd numpy-funksjon som returnerer et ndarray-objekt som inneholder jevnt fordelte verdier innenfor et definert intervall.
  • Numpy.dot-produktet er et kraftig bibliotek for matriseberegning.
  • Numpy matmul()-funksjonen brukes til å returnere matriseproduktet av 2 matriser.