logo

numpy.concatenate() v Pythonu

Funkcija concatenate() je funkcija iz paketa NumPy. Ta funkcija v bistvu združuje nize NumPy. Ta funkcija se v bistvu uporablja za spajanje dveh ali več nizov enake oblike vzdolž določene osi. Obstajajo naslednje stvari, ki jih morate imeti v mislih:

  1. NumPyjev concatenate() ni kot tradicionalno združevanje baze podatkov. To je kot zlaganje nizov NumPy.
  2. Ta funkcija lahko deluje navpično in vodoravno. To pomeni, da lahko matrike povežemo vodoravno ali navpično.
numpy.concatenate()

Funkcija concatenate() je običajno zapisana kot np.concatenate(), lahko pa jo zapišemo tudi kot numpy.concatenate(). Odvisno je od načina uvoza paketa numpy, bodisi import numpy kot np bodisi import numpy.

Sintaksa

 numpy.concatenate((a1, a2, ...), axis) 

Parametri

1) (a1, a2, ...)

Ta parameter določa zaporedje nizov. Tu so a1, a2, a3 ... polja, ki imajo enako obliko, razen v dimenziji, ki ustreza osi.

stoji

2) os: int (neobvezno)

lev v primerjavi s tigrom

Ta parameter določa os, vzdolž katere bo matrika spojena. Privzeto je njegova vrednost 0.

Rezultat

Vrnil bo ndarray, ki vsebuje elemente obeh matrik.

1. primer: numpy.concatenate()

 import numpy as np x=np.array([[1,2],[3,4]]) y=np.array([[12,30]]) z=np.concatenate((x,y)) z 

V zgornji kodi

  • Uvozili smo numpy z vzdevkom np.
  • Ustvarili smo matriko 'x' s funkcijo np.array().
  • Nato smo ustvarili drugo matriko 'y' z uporabo iste funkcije np.array().
  • Razglasili smo spremenljivko 'z' in dodelili vrnjeno vrednost funkcije np.concatenate().
  • V funkciji smo posredovali niz 'x' in 'y'.
  • Nazadnje smo poskušali natisniti vrednost 'z'.

V izhodu so vrednosti obeh matrik, tj. 'x' in 'y', prikazane kot na osi=0.

Izhod:

primeri binarnih dreves
 array([[ 1, 2], [ 3, 4], [12, 30]]) 

Primer 2: numpy.concatenate() z axis=0

 import numpy as np x=np.array([[1,2],[3,4]]) y=np.array([[12,30]]) z=np.concatenate((x,y), axis=0) z 

Izhod:

 array([[ 1, 2], [ 3, 4], [12, 30]]) 

Primer 3: numpy.concatenate() z axis=1

 import numpy as np x=np.array([[1,2],[3,4]]) y=np.array([[12,30]]) z=np.concatenate((x,y.T), axis=1) z 

Izhod:

 array([[ 1, 2, 12], [ 3, 4, 30]]) 

V zgornjem primeru je '.T' uporabljen za spreminjanje vrstic v stolpce in stolpcev v vrstice.

Primer 4: numpy.concatenate() z axis=None

 import numpy as np x=np.array([[1,2],[3,4]]) y=np.array([[12,30]]) z=np.concatenate((x,y), axis=None) z 

Izhod:

generičnost v Javi
 array([ 1, 2, 3, 4, 12, 30]) 

V zgornjih primerih smo uporabili funkcijo np.concatenate(). Ta funkcija ne ohranja maskiranja vnosov MaskedArray. Obstaja naslednji način, s katerim lahko združimo nize, ki lahko ohranijo maskiranje vnosov MaskedArray.

Primer 5: np.ma.concatenate()

 import numpy as np x=np.ma.arange(3) y=np.arange(3,6) x[1]=np.ma.masked x y z1=np.concatenate([x,y]) z2=np.ma.concatenate([x,y]) z1 z2 

V zgornji kodi

  • Uvozili smo numpy z vzdevkom np.
  • S funkcijo np.ma.arrange() smo ustvarili matriko 'x'.
  • Nato smo ustvarili drugo matriko 'y' z isto funkcijo np.ma.arrange().
  • Razglasili smo spremenljivko 'z1' in dodelili vrnjeno vrednost funkcije np.concatenate().
  • Deklarirali smo spremenljivko 'z2' in dodelili vrnjeno vrednost funkcije np.ma.concatenate().
  • Nazadnje smo poskušali natisniti vrednost 'z1' in 'z2'.

V izhodu so vrednosti obeh matrik 'z1' in 'z2' ohranile maskiranje vnosa MaskedArray.

Izhod:

 masked_array(data=[0, --, 2], mask=[False, True, False], fill_value=999999) array([3, 4, 5]) masked_array(data=[0, 1, 2, 3, 4, 5], mask=False, fill_value=999999) masked_array(data=[0, --, 2, 3, 4, 5], mask=[False, True, False, False, False, False], fill_value=999999)