Převeďte Python List na numpy Arrays
Seznam v Pythonu je lineární datová struktura, která může obsahovat heterogenní prvky, které nevyžadují deklaraci a které lze flexibilně zmenšovat a zvětšovat. Na druhou stranu pole je datová struktura, která může obsahovat homogenní prvky. Pole jsou implementována v Pythonu pomocí NumPy knihovna. Pole vyžadují méně paměti než seznamy . Podobnost mezi polem a seznamem spočívá v tom, že prvky pole i seznamu lze identifikovat podle hodnoty indexu.
Příklad
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
Převést Python List na Numpy Arrays
v Krajta , lze seznamy převést na pole pomocí dvou metod z knihovny NumPy:
- Použití numpy.array()
- Použitím numpy.asarray()
Seznam Pythonu do polí NumPy pomocí numpy.array()
V Pythonu je nejjednodušší způsob, jak převést seznam na pole NumPy, pomocí funkce numpy.array(). Vezme argument a jako výsledek vrátí pole NumPy. Vytvoří novou kopii v paměti a vrátí nové pole.
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)> |
Výstup:
List: [1, 7, 0, 6, 2, 5, 6] Array: [1 7 0 6 2 5 6]
Seznam Pythonu do polí NumPy pomocí numpy.asarray()
V Numpy, numpy.asarray() je funkce, která převádí vstupní data do pole NumPy. Vezme argument a vrátí pole NumPy. Nevytváří novou kopii v paměti.
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)> |
Výstup:
List: [1, 7, 0, 6, 2, 5, 6] Array: [1 7 0 6 2 5 6]
Rozdíl mezi numpy.array() a numpy.asarray()
Zásadní rozdíl mezi výše uvedenými dvěma metodami je v tom, že numpy.array() vytvoří duplikát původního objektu a numpy.asarray() bude zrcadlit změny v původním objektu. Když je pomocí numpy.asarray() vytvořena kopie pole, změny provedené v jednom poli se projeví také v druhém poli, ale nezobrazují změny v seznamu, podle kterých je pole vytvořeno. To se však nestane s 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)> |
Výstup :
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]
V arr a arr1 je změna viditelná na indexu 3, ale ne na 1.