Listy w Pythonie zastępują tablice, ale nie zapewniają wydajności wymaganej przy obliczaniu dużych zbiorów danych numerycznych.
Aby rozwiązać ten problem, używamy Biblioteka NumPy Pythona. NumPy oferuje obiekt tablicowy o nazwie ndarray . Są podobne do standardowych sekwencji Pythona, ale różnią się pewnymi kluczowymi czynnikami.
Co to jest tablica NumPy?
Tablica NumPy to wielowymiarowa struktura danych, która stanowi rdzeń obliczeń naukowych w Pythonie.
Wszystkie wartości w tablicy są jednorodne (tego samego typu danych).
Oferują automatyczną wektoryzację i nadawanie.
Zapewniają efektywne zarządzanie pamięcią, ufuncs (funkcje uniwersalne), obsługują różne typy danych i są elastyczne dzięki indeksowaniu i krojeniu.
Wymiary w tablicach
Tablice NumPy mogą mieć wiele wymiarów, umożliwiając użytkownikom przechowywanie danych w strukturach wielowarstwowych.
Wymiary tablicy:
| Nazwa | Przykład |
| 0D (zerowymiarowy) | Skalar – pojedynczy element |
| 1D (jednowymiarowy) | Wektor — lista liczb całkowitych. |
| 2D (dwuwymiarowy) | Matryca – arkusz kalkulacyjny danych |
| 3D (trójwymiarowy) | Tensor – przechowywanie kolorowego obrazu |
Utwórz obiekt tablicowy
Obiekty tablicy NumPy pozwalają nam pracować z tablicami w Pythonie. Obiekt tablicy jest wywoływany ndarray .
array() biblioteki NumPy tworzy ndarray.
Python3
aktor Saira Banu
import> numpy as np> arr>=> np.array([>1>,>2>,>3>,>4>,>5>,>6>])> |
>
>
Wyjście
[1,2,3,4,5,6]>
Możemy również utworzyć tablicę NumPy za pomocą List i Tuple.
Utwórz tablicę NumPy z listy
Możesz użyć aliasu np, aby utworzyć ndarray pliku a lista za pomocą metody array().
li = [1,2,3,4] numpyArr = np.array(li)>
Lub
numpyArr = np.array([1,2,3,4])>
Lista jest przekazywana do metody array(), która następnie zwraca tablicę zawierającą te same elementy.
Przykład 1: Poniższy przykład pokazuje, jak zainicjować tablicę z listy.
Python3
samouczek selenu Java
zmienna basha
import> numpy as np> > li>=> [>1>,>2>,>3>,>4>]> numpyArr>=> np.array(li)> print>(numpyArr)> |
>
>
Wyjście:
[1 2 3 4]>
Wynikowa tablica wygląda tak samo jak lista, ale jest obiektem NumPy.
Przykład 2: Weźmy przykład, aby sprawdzić, czy numpyArr jest obiektem NumPy, czy nie. W tym przykładzie używamy funkcji array() do konwersji listy na tablicę NumPy, a następnie sprawdzamy, czy jest to obiekt NumPy, czy nie.
Python3
import> numpy as np> > li>=> [>1>,>2>,>3>,>4>]> numpyArr>=> np.array(li)> > print>(>'li ='>, li,>'and type(li) ='>,>type>(li))> print>(>'numpyArr ='>, numpyArr,>'and type(numpyArr) ='>,>type>(numpyArr))> |
>
>
Wyjście:
li = [1, 2, 3, 4] and type(li) = numpyArr = [1 2 3 4] and type(numpyArr) =>
Jak widać li jest obiektem listowym, natomiast numpyArr jest obiektem tablicowym NumPy.
Utwórz tablicę NumPy z krotki
Możesz zrobić ndarray z pliku krotka używając podobnej składni.
tup = (1,2,3,4) numpyArr = np.array(tup)>
Lub
numpyArr = np.array((1,2,3,4))>
Poniższy przykład ilustruje sposób tworzenia tablicy z krotki. Tutaj używamy funkcji array() do konwersji krotki na tablicę NumPy.
Python3
przycinanie JavaScriptu
import> numpy as np> > tup>=> (>1>,>2>,>3>,>4>)> numpyArr>=> np.array(tup)> > print>(>'tup ='>, tup,>'and type(tup) ='>,>type>(tup))> print>(>'numpyArr ='>, numpyArr,>'and type(numpyArr) ='>,>type>(numpyArr))> |
>
>
Wyjście:
inaczej, jeśli bash
tup = (1, 2, 3, 4) and type(tup) = numpyArr = [1 2 3 4] and type(numpyArr) =>
Należy zauważyć, że wartość numpyArr pozostaje taka sama dla obu konwersji.
Tablice NumPy a wbudowane sekwencje Pythona
- W przeciwieństwie do list, tablice mają stały rozmiar, a zmiana rozmiaru tablicy spowoduje utworzenie nowej tablicy, podczas gdy oryginalna tablica zostanie usunięta.
- Wszystkie elementy tablicy są tego samego typu.
- Tablice są szybsze, wydajniejsze i wymagają mniejszej składni niż standardowe sekwencje Pythona.
Notatka: Różne naukowe i matematyczne pakiety oparte na Pythonie używają Numpy. Mogą przyjmować dane wejściowe jako wbudowaną sekwencję Pythona, ale prawdopodobnie konwertują dane na tablicę NumPy, aby uzyskać szybsze przetwarzanie. To wyjaśnia potrzebę zrozumienia NumPy.
Dlaczego tablica Numpy jest tak szybka?
Tablice Numpy są zapisywane głównie w Język C . Tablice są napisane w języku C i są przechowywane w sąsiadujących lokalizacjach pamięci, co czyni je dostępnymi i łatwiejszymi w obsłudze. Oznacza to, że można uzyskać poziom wydajności kodu C z łatwością pisania programu w języku Python.
- Jednorodne dane: Tablice przechowują elementy tego samego typu danych, dzięki czemu są bardziej zwarte i oszczędzają pamięć niż listy.
- Naprawiono typ danych: Tablice mają stały typ danych, co zmniejsza obciążenie pamięci, eliminując potrzebę przechowywania informacji o typie każdego elementu.
- Pamięć ciągła: Tablice przechowują elementy w sąsiednich lokalizacjach pamięci, zmniejszając fragmentację i umożliwiając efektywny dostęp.

Alokacja pamięci tablicy Numpy
Jeśli nie masz zainstalowanego NumPy w swoim systemie, możesz to zrobić, wykonując poniższe kroki. Po zainstalowaniu NumPy możesz zaimportować go do swojego programu w ten sposób
import numpy as np>
Notatka: Tutaj np jest powszechnie używanym aliasem dla NumPy.
Alokacja danych w tablicy Numpy
W NumPy dane są alokowane w pamięci w sposób ciągły, zgodnie z dobrze zdefiniowanym układem składającym się z bufora danych, kształtu i kroków. Jest to niezbędne dla wydajnego dostępu do danych, operacji wektorowych i zgodności z bibliotekami niskiego poziomu, takimi jak BŁAG I LAPACK .
- Bufor danych: Bufor danych w NumPy to pojedynczy, płaski blok pamięci, w którym przechowywane są rzeczywiste elementy tablicy, niezależnie od jej wymiarowości. Umożliwia to wydajne operacje elementarne i dostęp do danych.
- Kształt: Kształt tablicy to krotka liczb całkowitych reprezentujących wymiary wzdłuż każdej osi. Każda liczba całkowita odpowiada rozmiarowi tablicy wzdłuż określonego wymiaru, który określa liczbę elementów wzdłuż każdej osi i jest niezbędny do prawidłowego indeksowania i przekształcania tablicy.
- Kroki: Kroki to krotki liczb całkowitych, które definiują liczbę bajtów, które należy wykonać w każdym wymiarze podczas przechodzenia z jednego elementu do następnego. Określają odstępy między elementami w pamięci i mierzą, ile bajtów potrzeba do przejścia z jednego elementu do drugiego w każdym wymiarze.

Wniosek
Tablica NumPy w Pythonie jest bardzo przydatną strukturą danych, która pozwala na wykonywanie różnych operacji naukowych na danych. Jest to struktura danych zajmująca bardzo mało pamięci i oferuje szeroką gamę zalet w porównaniu z innymi sekwencjami Pythona.
W tym samouczku szczegółowo wyjaśniliśmy tablice NumPy. Omówiliśmy definicję, wymiarowość, dlaczego jest szybki i jak działa alokacja danych w tablicy. Po ukończeniu tego samouczka zyskasz pełną, dogłębną wiedzę na temat tablicy NumPy i będziesz mógł ją zaimplementować w swoich projektach w Pythonie.