Konwertuj listę Pythona na tablice numpy
Lista w Pythonie to liniowa struktura danych, która może przechowywać heterogeniczne elementy, które nie wymagają deklaracji i które można elastycznie zmniejszać i powiększać. Z drugiej strony tablica jest strukturą danych, która może przechowywać jednorodne elementy. Tablice są implementowane w Pythonie przy użyciu metody NumPy biblioteka. Tablice wymagają mniej pamięci niż listy . Podobieństwo między tablicą a listą polega na tym, że elementy zarówno tablicy, jak i listy można zidentyfikować na podstawie wartości indeksu.
Przykład
Input: [1, 7, 0, 6, 2, 5, 6] Output: [1 7 0 6 2 5 6] Explanation: Given Python List is converted into NumPy Array
Konwertuj listę Pythona na tablice Numpy
W Pyton , listy można konwertować na tablice przy użyciu dwóch metod z biblioteki NumPy:
- Korzystanie z numpy.array()
- Za pomocą numpy.asarray()
Lista Pythona do tablic NumPy przy użyciu numpy.array()
W Pythonie najprostszym sposobem przekonwertowania listy na tablicę NumPy jest użycie funkcji numpy.array(). Pobiera argument i w rezultacie zwraca tablicę NumPy. Tworzy nową kopię w pamięci i zwraca nową tablicę.
Python3
# importing library> import> numpy> # initializing list> lst> => [> 1> ,> 7> ,> 0> ,> 6> ,> 2> ,> 5> ,> 6> ]> # converting list to array> arr> => numpy.array(lst)> # displaying list> print> (> 'List: '> , lst)> # displaying array> print> (> 'Array: '> , arr)> |
Wyjście:
List: [1, 7, 0, 6, 2, 5, 6] Array: [1 7 0 6 2 5 6]
Lista Pythona do tablic NumPy przy użyciu numpy.asarray()
w Numpy, numpy.asarray() to funkcja konwertująca dane wejściowe na tablicę NumPy. Pobiera argument i zwraca tablicę NumPy. Nie tworzy nowej kopii w pamięci.
Python3
# importing library> import> numpy> # initializing list> lst> => [> 1> ,> 7> ,> 0> ,> 6> ,> 2> ,> 5> ,> 6> ]> # converting list to array> arr> => numpy.asarray(lst)> # displaying list> print> (> 'List:'> , lst)> # displaying array> print> (> 'Array: '> , arr)> |
Wyjście:
List: [1, 7, 0, 6, 2, 5, 6] Array: [1 7 0 6 2 5 6]
Różnica między numpy.array() i numpy.asarray()
Istotna różnica między powyższymi dwiema metodami polega na tym, że numpy.array() utworzy duplikat oryginalnego obiektu, a numpy.asarray() odzwierciedli zmiany w oryginalnym obiekcie. Kiedy kopia tablicy jest tworzona za pomocą numpy.asarray(), zmiany dokonane w jednej tablicy zostaną odzwierciedlone również w drugiej tablicy, ale zmiany nie zostaną pokazane na liście, według której, jeśli tablica jest tworzona. Nie dzieje się to jednak w przypadku numpy.array().
Python3
# importing library> import> numpy> # initializing list> lst> => [> 1> ,> 7> ,> 0> ,> 6> ,> 2> ,> 5> ,> 6> ]> # converting list to array> arr> => numpy.asarray(lst)> # displaying list> print> (> 'List:'> , lst)> # displaying array> print> (> 'arr: '> , arr)> # made another array out of arr using asarray function> arr1> => numpy.asarray(arr)> #displaying arr1 before the changes made> print> (> 'arr1: '> , arr1)> #change made in arr1> arr1[> 3> ]> => 23> #displaying arr1 , arr , list after the change has been made> print> (> 'lst: '> , lst)> print> (> 'arr: '> , arr)> print> (> 'arr1: '> , arr1)> |
Wyjście :
List: [1, 7, 0, 6, 2, 5, 6] arr: [1 7 0 6 2 5 6] arr1: [1 7 0 6 2 5 6] lst: [1, 7, 0, 6, 2, 5, 6] arr: [ 1 7 0 23 2 5 6] arr1: [ 1 7 0 23 2 5 6]
W arr i arr1 zmiana jest widoczna w indeksie 3, ale nie w pierwszym.