logo

numpy.concatenate() v Pythonu

Funkce concatenate() je funkce z balíčku NumPy. Tato funkce v podstatě kombinuje pole NumPy dohromady. Tato funkce se v podstatě používá pro spojení dvou nebo více polí stejného tvaru podél zadané osy. Je třeba mít na paměti následující věci:

  1. NumPy's concatenate() není jako tradiční připojení k databázi. Je to jako skládání polí NumPy.
  2. Tato funkce může fungovat jak vertikálně, tak horizontálně. To znamená, že můžeme zřetězit pole dohromady horizontálně nebo vertikálně.
numpy.concatenate()

Funkce concatenate() se obvykle zapisuje jako np.concatenate(), ale můžeme ji také zapsat jako numpy.concatenate(). Záleží na způsobu importu balíčku numpy, buď importovat numpy jako np nebo importovat numpy, resp.

Syntax

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

Parametry

1) (a1, a2, ...)

Tento parametr definuje posloupnost polí. Zde a1, a2, a3 ... jsou pole, která mají stejný tvar, kromě rozměru odpovídajících ose.

0,06 jako zlomek

2) osa: int (volitelné)

Tento parametr definuje osu, podél které bude pole spojeno. Ve výchozím nastavení je jeho hodnota 0.

Výsledek

Vrátí ndarray obsahující prvky obou polí.

Příklad 1: numpy.concatenate()

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

Ve výše uvedeném kódu

plná forma pvr
  • Importovali jsme numpy s aliasem np.
  • Vytvořili jsme pole 'x' pomocí funkce np.array().
  • Potom jsme pomocí stejné funkce np.array() vytvořili další pole 'y'.
  • Deklarovali jsme proměnnou 'z' a přiřadili vrácenou hodnotu funkce np.concatenate().
  • Ve funkci jsme předali pole 'x' a 'y'.
  • Nakonec jsme zkusili vytisknout hodnotu 'z'.

Ve výstupu jsou hodnoty obou polí, tj. 'x' a 'y' zobrazené podle osy = 0.

Výstup:

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

Příklad 2: numpy.concatenate() s 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 

Výstup:

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

Příklad 3: numpy.concatenate() s 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 

Výstup:

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

Ve výše uvedeném příkladu se '.T' používá ke změně řádků na sloupce a sloupců na řádky.

Příklad 4: numpy.concatenate() s 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 

Výstup:

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

Ve výše uvedených příkladech jsme použili funkci np.concatenate(). Tato funkce nezachovává maskování vstupů MaskedArray. Existuje následující způsob, jak můžeme zřetězit pole, která mohou zachovat maskování vstupů MaskedArray.

Příklad 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 

Ve výše uvedeném kódu

execvp
  • Importovali jsme numpy s aliasem np.
  • Vytvořili jsme pole 'x' pomocí funkce np.ma.arrange().
  • Potom jsme pomocí stejné funkce np.ma.arrange() vytvořili další pole 'y'.
  • Deklarovali jsme proměnnou 'z1' a přiřadili vrácenou hodnotu funkce np.concatenate().
  • Deklarovali jsme proměnnou 'z2' a přiřadili vrácenou hodnotu funkce np.ma.concatenate().
  • Nakonec jsme zkusili vytisknout hodnotu 'z1' a 'z2'.

Ve výstupu hodnoty obou polí 'z1' a 'z2' zachovaly maskování vstupu MaskedArray.

Výstup:

 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)