Jak działa numpy meshgrid w języku Python? Przykład zastosowania

Jak działa numpy meshgrid w języku Python? Przykład zastosowania
„`html

W pracy z biblioteką NumPy często napotykamy sytuacje, w których potrzebujemy stworzyć siatkę współrzędnych na podstawie określonych wektorów wartości. Do tego celu doskonale nadaje się funkcja numpy.meshgrid(). W tym artykule szczegółowo omówię, jak działa numpy.meshgrid() w języku Python i przedstawię przykład zastosowania.

Co to jest numpy.meshgrid()?

Funkcja numpy.meshgrid() generuje siatkę współrzędnych z podanych 1-wymiarowych tablic wartości. Siatka ta jest tworzona poprzez replikację tych wartości w taki sposób, aby umożliwić łatwe operowanie na współrzędnych w przestrzeni wielowymiarowej.

Składnia i parametry

Podstawowa składnia funkcji wygląda następująco:

numpy.meshgrid(*xi, indexing='xy', sparse=False, copy=True)

Gdzie:

  • *xi – jedna lub więcej tablic wejściowych reprezentujących wartości osi współrzędnych.
  • indexing – domyślnie 'xy', określa indeksowanie siatki ('ij' dla indeksowania macierzowego).
  • sparse – jeśli ustawione na True, zwraca siatkę w postaci oszczędnej (redukowana liczba operacji i pamięci).
  • copy – czy zwrócone tablice mają być kopiami wartości wejściowych.

Przykład użycia numpy.meshgrid()

Załóżmy, że chcemy utworzyć siatkę wartości opartą na dwóch wektorach.

import numpy as np

x = np.array([1, 2, 3])
y = np.array([4, 5])

X, Y = np.meshgrid(x, y)

print("X:\n", X)
print("Y:\n", Y)

Wynik:

X:
 [[1 2 3]
  [1 2 3]]

Y:
 [[4 4 4]
  [5 5 5]]

Tutaj wartości z x zostały powielone jako kolumny, a wartości z y jako wiersze.

Różnica między indeksowaniem 'xy’ a 'ij’

Funkcja numpy.meshgrid() pozwala na wybór sposobu indeksowania danych.

X_ij, Y_ij = np.meshgrid(x, y, indexing='ij')

Zastosowanie indeksowania 'ij' spowoduje inny układ wartości w zwróconych macierzach.

Oszczędna macierz sparse=True

Jeżeli interesuje nas oszczędność pamięci, możemy użyć opcji sparse=True:

X_sparse, Y_sparse = np.meshgrid(x, y, sparse=True)

W takim przypadku zamiast pełnej siatki, otrzymujemy tylko minimalne wartości wymagane do zbudowania pełnej macierzy.

Praktyczne zastosowania numpy.meshgrid()

Funkcja numpy.meshgrid() znajduje zastosowanie w:

  • Generowaniu siatek współrzędnych do wykresów 3D.
  • Tworzeniu map ciepła (heatmap) w analizie danych.
  • Przetwarzaniu obrazów i operacjach na współrzędnych.

Podsumowanie

Funkcja numpy.meshgrid() umożliwia szybkie tworzenie siatek współrzędnych, co jest niezwykle przydatne w analizie numerycznej oraz wizualizacji danych. Dzięki opcjom takim jak indexing czy sparse, możemy dostosować jej działanie do naszych potrzeb.

„` Inny ciekawy artykuł: Jak działa numpy arange w języku Python? Przykład zastosowania
KajoDataSpace