Previesť Python List na numpy Arrays

Zoznam v Pythone je lineárna dátová štruktúra, ktorá môže obsahovať heterogénne prvky, ktoré nevyžadujú deklaráciu a ktoré sa dajú flexibilne zmenšovať a rásť. Na druhej strane pole je dátová štruktúra, ktorá môže obsahovať homogénne prvky. Polia sú implementované v Pythone pomocou NumPy knižnica. Polia vyžadujú menej pamäte ako zoznamy . Podobnosť medzi poľom a zoznamom je v tom, že prvky poľa aj zoznamu možno identifikovať podľa ich indexovej hodnoty.

Prí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 

Previesť Python List na Numpy Arrays

In Python , zoznamy možno previesť na polia pomocou dvoch metód z knižnice NumPy:

  • Použitie numpy.array()
  • Použitím numpy.asarray()

Zoznam Pythonu do polí NumPy pomocou numpy.array()

V Pythone je najjednoduchší spôsob, ako previesť zoznam na pole NumPy, pomocou funkcie numpy.array(). Vezme argument a ako výsledok vráti pole NumPy. V pamäti vytvorí novú kópiu a vráti 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ýkon:

List: [1, 7, 0, 6, 2, 5, 6] Array: [1 7 0 6 2 5 6] 

Zoznam Python do polí NumPy pomocou numpy.asarray()

V Numpy, numpy.asarray() je funkcia, ktorá konvertuje vstupné dáta do poľa NumPy. Vezme argument a vráti pole NumPy. Nevytvorí novú kópiu 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ýkon:

List: [1, 7, 0, 6, 2, 5, 6] Array: [1 7 0 6 2 5 6] 

Rozdiel medzi numpy.array() a numpy.asarray()

Zásadný rozdiel medzi vyššie uvedenými dvoma metódami je v tom, že numpy.array() vytvorí duplikát pôvodného objektu a numpy.asarray() zrkadlí zmeny v pôvodnom objekte. Keď sa vytvorí kópia poľa pomocou numpy.asarray(), zmeny vykonané v jednom poli sa prejavia aj v druhom poli, ale nezobrazia zmeny v zozname, podľa ktorých sa pole vytvorí. Toto sa 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ýkon :

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 zmena viditeľná na indexe 3, ale nie na 1.