NumPy Zastosuj funkcję

Numpy Zastosuj Funkcje



Wbudowana biblioteka oferowana przez Pythona, znana jako NumPy, pozwala nam konstruować wielowymiarowe tablice, modyfikować je i wykonywać na nich różne obliczenia arytmetyczne. Funkcja Apply jest również dostarczana przez pakiet NumPy. Typowy przypadek użycia funkcji Apply jest podobny do scenariusza, w którym chcemy podzielić tablicę i wykonać pewne operacje na każdym elemencie listy, na przykład, jeśli chcemy wyrównać każdy element wiersza. Oczywiście w Pythonie wiemy, że pętle for są wolne, więc w miarę możliwości chcielibyśmy ich uniknąć. Funkcji „zastosuj” można użyć, jeśli chcesz wykonać tę samą operację na każdym wierszu lub kolumnie ramki danych. Innymi słowy, robi to, co chcesz zrobić z pętlą for, bez konieczności pisania pętli for.

Istnieją dwie metody zastosowania dowolnej funkcji do tablicy w zależności od warunku. Możemy zastosować funkcję „zastosuj nad osią”, która jest przydatna, gdy stosujemy funkcję na każdym elemencie tablicy jeden po drugim, i jest przydatna w przypadku tablic n-wymiarowych. Druga metoda to „nakładanie wzdłuż osi”, która dotyczy tablicy jednowymiarowej.

Składnia:

Metoda 1: Zastosuj wzdłuż osi

numpy. zastosuj_wzdłuż_osi ( 1d_funkcja , , Arr , *argumenty , **kwargi )

W składni mamy funkcję „numpy.apply”, do której przekazujemy pięć argumentów. Pierwszy argument, którym jest „1d_function” działa na tablicy jednowymiarowej, co jest wymagane. Podczas gdy drugi argument, „oś”, to ta, na której osi chcesz podzielić tablicę i zastosować tę funkcję. Trzeci parametr to „arr”, czyli podana tablica, do której chcemy zastosować funkcję. Podczas gdy „*args” i „*kwargs” to dodatkowe argumenty, których nie trzeba dodawać.







Przykład 1:

Idąc w kierunku lepszego zrozumienia metod aplikacyjnych, wykonujemy przykład, aby sprawdzić działanie metod aplikacyjnych. W tym przypadku wykonujemy funkcję „apply_along_Axis”. Przejdźmy do naszego pierwszego kroku. Najpierw dołączamy nasze biblioteki NumPy jako np. Następnie tworzymy tablicę o nazwie „arr”, która przechowuje macierz 3×3 z wartościami całkowitymi, które wynoszą „8, 1, 7, 4, 3, 9, 5, 2 i 6”. W kolejnym wierszu tworzymy zmienną o nazwie „array”, która jest odpowiedzialna za przechowywanie wyniku funkcji Apply_along_Axis.



Do tej funkcji przekazujemy trzy argumenty. Pierwsza to funkcja, którą chcemy zastosować do tablicy, w naszym przypadku jest to funkcja posortowana, ponieważ chcemy, aby nasza tablica była posortowana. Następnie przekazujemy drugi argument „1”, co oznacza, że ​​chcemy podzielić naszą tablicę wzdłuż osi=1. Na koniec przekazujemy tablicę, która ma być w tym przypadku posortowana. Na końcu kodu po prostu wypisujemy obie tablice – oryginalną oraz wynikową – które są wyświetlane za pomocą instrukcji print().



import numpy jak np

Arr = np. szyk ( [ [ 8 , 1 , 7 ] , [ 4 , 3 , 9 ] , [ 5 , dwa , 6 ] ] )

szyk = np. zastosuj_wzdłuż_osi ( posortowane , 1 , Arr )

wydrukować ( 'oryginalna tablica to:' , Arr )

wydrukować ( 'posortowana tablica to:' , szyk )





Jak widać na poniższym wyjściu, wyświetliliśmy obie tablice. W pierwszej wartości są losowo umieszczane w każdym wierszu macierzy. Ale w drugim widzimy posortowaną tablicę. Ponieważ przekazaliśmy oś „1”, nie posortowała ona całej tablicy, ale posortowała ją wierszowo, jak pokazano. Każdy wiersz jest sortowany. Pierwszy wiersz w danej tablicy to „8, 1 i 7”. W posortowanej tablicy pierwszy wiersz to „1, 7 i 8”. Podobnie jak to, każdy wiersz jest sortowany.



Metoda 2: Zastosuj na osi

numpy. Apply_over_axes ( funkcjonować , a , osie )

W podanej składni mamy funkcję numpy.apply_over_axis, która odpowiada za zastosowanie funkcji na danej osi. Wewnątrz funkcji apply_over_axis przekazujemy trzy argumenty. Pierwsza to funkcja, która ma być wykonana. Drugi to sama tablica. A ostatnia to oś, na której chcemy zastosować funkcję.

Przykład 2:

W poniższym przykładzie wykonujemy drugą metodę funkcji „zastosuj”, w której obliczamy sumę tablicy trójwymiarowej. Należy pamiętać, że suma dwóch tablic nie oznacza, że ​​obliczamy całą tablicę. W niektórych tablicach obliczamy sumę wierszową, co oznacza, że ​​dodajemy wiersze i pobieramy z nich pojedynczy element.

Przejdźmy do naszego kodu. Najpierw importujemy pakiet NumPy, a następnie tworzymy zmienną przechowującą trójwymiarową tablicę. W naszym przypadku zmienną jest „arr”. W następnym wierszu tworzymy kolejną zmienną, która przechowuje tablicę wynikową funkcji apply_over_axis. Przypisujemy funkcję zastosuj_nad_osią do zmiennej „arr” z trzema argumentami. Pierwszym argumentem jest wbudowana funkcja NumPy do obliczania sumy np.sum. Drugim parametrem jest sama tablica. Trzecim argumentem jest oś, na której jest zastosowana funkcja, w tym przypadku mamy oś „[0, 2]”. Na końcu kodu wykonujemy obie tablice za pomocą instrukcji print().

import numpy jak np

Arr = np. szyk ( [ [ [ 6 , 12 , dwa ] , [ dwa , 9 , 6 ] , [ 18 , 0 , 10 ] ] ,

[ [ 12 , 7 , 14 ] , [ dwa , 17 , 18 ] , [ 0 , dwadzieścia jeden , 8 ] ] ] )

szyk = np. Apply_over_axes ( np. suma , Arr , [ 0 , dwa ] )

wydrukować ( 'oryginalna tablica to:' , Arr )

wydrukować ( 'suma tablicy to:' , szyk )

Jak pokazano na poniższym rysunku, obliczyliśmy niektóre z naszych trójwymiarowych tablic za pomocą funkcji apply_over_axis. Pierwsza wyświetlana tablica to oryginalna tablica o kształcie „2, 3, 3”, a druga to suma wierszy. Suma w pierwszym wierszu to „53”, druga to „54”, a ostatnia to „57”.

Wniosek

W tym artykule zbadaliśmy, w jaki sposób funkcja Apply jest używana w NumPy i jak możemy zastosować różne funkcje w tablicach wzdłuż lub nad osią. Łatwo jest zastosować dowolną funkcję w żądanym wierszu lub kolumnie, wycinając je za pomocą metod „zastosuj” dostarczonych przez NumPy. Jest to skuteczny sposób, gdy nie musimy stosować go do całej tablicy. Mamy nadzieję, że ten post okaże się przydatny w nauce korzystania z metody aplikacji.