logo

numpy.meshgrid() v Pythonu

Numpy modul Pythonu poskytuje síťová mřížka() funkce pro vytvoření obdélníkové sítě pomocí daných 1-D polí, která reprezentují Maticové indexování nebo Kartézské indexování . MATLAB poněkud inspiruje funkci meshgrid(). Ze souřadnicových vektorů vrací funkce meshgrid() matice souřadnic.

numpy.meshgrid()

Na výše uvedeném obrázku je osa x v rozsahu od -5 do 5 a osa y je v rozsahu od -5 do 5. Na obrázku je tedy označeno celkem 121 bodů, každý se souřadnicí x a y-ová souřadnice. Pro jakoukoli přímku rovnoběžnou s osou x jsou souřadnice x označených bodů -5, -4, -3, -2, -1, 0, 1, 2, 3, 4 a 5 v tomto pořadí. Na druhou stranu pro jakoukoli přímku rovnoběžnou s osou y jsou souřadnice y označených bodů zdola nahoru -5, -4, -3, -2, -1, 0, 1, 2, 3 , 4, respektive 5.

Syntax

 numpy.meshgrid(*xi, **kwargs) 

Parametry

x1, x2,…, xn : jako pole

Tento parametr definuje jednorozměrné pole, které představuje souřadnice mřížky.

android.process.acore se stále zastavuje

indexování: {'xy', 'ij'} (volitelné)

Toto je volitelný argument, který definuje kartézské 'xy' (ve výchozím nastavení) nebo maticové ('ij') indexování výstupu.

tojson java

řídký: bool (volitelné)

Tento parametr je také volitelný. Pokud potřebujeme řídkou mřížku pro úsporu paměti, musíme tento parametr nastavit na True. Ve výchozím nastavení je nastavena na False.

kopie: bool (volitelné)

Cílem tohoto volitelného argumentu je, že vrací kopii původního pole pro úsporu paměti. Ve výchozím nastavení je nastavena na False.

Pokud obojí řídký a kopírovat parametry jsou nastaveny na False, pak vrátí nesouvislá pole. Navíc více než jeden prvek všesměrového pole může odkazovat na jediné paměťové místo. Pokud potřebujeme zapisovat do polí, musíme nejprve vytvořit kopie.

převodník řetězce na int

Návraty

X1, X2, ..., Xn

Tato funkce vrátí délku souřadnice ze souřadnicového vektoru.

Příklad 1:

 import numpy as np na, nb = (5, 3) a = np.linspace(1, 2, na) b = np.linspace(1, 2, nb) xa, xb = np.meshgrid(a, b) xa xb 

Výstup:

 array([[1. , 1.25, 1.5 , 1.75, 2. ], [1. , 1.25, 1.5 , 1.75, 2. ], [1. , 1.25, 1.5 , 1.75, 2. ]]) array([[1. , 1. , 1. , 1. , 1. ], [1.5, 1.5, 1.5, 1.5, 1.5], [2. , 2. , 2. , 2. , 2. ]]) 

Ve výše uvedeném kódu

  • Importovali jsme numpy s aliasem np.
  • Vytvořili jsme dvě proměnné, tj. na a nb, a přiřadili jsme jim hodnoty 5 a 3.
  • Vytvořili jsme dvě pole, tj. a a b pomocí funkce linspace().
  • Poté jsme deklarovali proměnné 'xa' a 'xb' a přiřadili jim vrácenou hodnotu síťová mřížka()
  • Ve funkci jsme předali obě pole 'a' a 'b'
  • Nakonec jsme zkusili vytisknout hodnotu 'shah' a 'xb' .

Ve výstupu jsou zobrazena dvě pole, která obsahují délku souřadnic ze souřadnicových vektorů.

Java referenční typy

Příklad 2:

 import numpy as np na, nb = (5, 3) a = np.linspace(1, 2, na) b = np.linspace(1, 2, nb) xa, xb = np.meshgrid(a, b, sparse=True) xa xb 

Výstup:

 array([[1. , 1.25, 1.5 , 1.75, 2. ]]) array([[1. ], [1.5], [2. ]]) 

Příklad 3:

 import numpy as np import matplotlib.pyplot as plt a = np.arange(-10, 10, 0.1) b = np.arange(-10, 10, 0.1) xa, xb = np.meshgrid(a, b, sparse=True) z = np.sin(xa**2 + xb**2) / (xa**2 + xb**2) h = plt.contourf(a,b,z) plt.show() 

Výstup:

numpy.meshgrid()

Ve výše uvedeném kódu

  • Importovali jsme numpy s aliasem np.
  • Importovali jsme matplotlib.pyplot jako plt.
  • Vytvořili jsme dvě pole, tj. a a b pomocí funkce np.arange().
  • Poté jsme deklarovali proměnné 'xa' a 'xb' a přiřadili jim vrácenou hodnotu síťová mřížka()
  • Ve funkci jsme předali obě pole 'a' a 'b'.
  • Poté jsme deklarovali proměnnou z a přiřadili návratovou hodnotu funkce np.sine().
  • Nakonec jsme se pokusili kreslit obrysové čáry a vyplněné obrysy pomocí plt.contourf()

Ve výstupu byly vykresleny vrstevnice.

Příklad 4:

 import numpy as np import matplotlib.pyplot as plt a = np.linspace(-5, 5, 5) b = np.linspace(-5, 5, 11) random_data = np.random.random((11, 5)) xa, xb = np.meshgrid(a, b) plt.contourf(xa, xb, random_data, cmap = 'jet') plt.colorbar() plt.show() 

Výstup:

numpy.meshgrid()

Příklad 5:

 import numpy as np import matplotlib.pyplot as plt a = np.linspace(-5, 5, 5) b = np.linspace(-5, 5, 11) random_data = np.random.random((11, 5)) xa, xb = np.meshgrid(a, b) sine = (np.sin(xa**2 + xb**2))/(xa**2 + xb**2) plt.contourf(xa, xb, sine, cmap = 'jet') plt.colorbar() plt.show() 

Výstup:

numpy.meshgrid()