Come convertire un array NumPy in un elenco Python (ad esempio [[1,2,3],[4,5,6]]
) e farlo abbastanza velocemente?Conversione dell'array NumPy nella struttura Elenco Python?
156
A
risposta
236
Uso tolist()
:
import numpy as np
>>> np.array([[1,2,3],[4,5,6]]).tolist()
[[1, 2, 3], [4, 5, 6]]
Si noti che questo converte i valori da qualsiasi tipo NumPy che possono avere (ad esempio np.int32 o np.float32) per il "più vicino tipo Python compatibile" (in una lista) . Se si desidera conservare i tipi di dati numpy, è possibile chiamare list() sull'array e verrà visualizzato un elenco di numpy scalars. (Grazie a Mr_and_Mrs_D per la segnalazione in commenti.)
37
array NumPy hanno un tolist method:
In [1]: arr=np.array([[1,2,3],[4,5,6]])
In [2]: arr.tolist()
Out[2]: [[1, 2, 3], [4, 5, 6]]
3
Procedimento .ToList NumPy produce matrici nidificate se la forma matrice NumPy è 2D.
se sono desiderati elenchi piani, il metodo seguente funziona.
import numpy as np
from itertools import chain
a = [1,2,3,4,5,6,7,8,9]
print type(a), len(a), a
npa = np.asarray(a)
print type(npa), npa.shape, "\n", npa
npa = npa.reshape((3, 3))
print type(npa), npa.shape, "\n", npa
a = list(chain.from_iterable(npa))
print type(a), len(a), a`
Problemi correlati
- 1. Conversione elenco per NumPy gamma
- 2. Python - Conversione di stringhe in un elenco
- 3. Python supporta la struttura condizionale nella regex?
- 4. OpenCV: conversione da NumPy a IplImage in Python
- 5. Conversione stringa di datetime a datetime in NumPy (python)
- 6. efficiente array python per la conversione di numpy array
- 7. Python/Numpy: Convertire elenco di Caccio a unsigned int
- 8. Elenco alla conversione di array
- 9. elenco di mapping della stringa nella struttura gerarchica degli oggetti
- 10. Conversione di serie di stringhe in elenco float in python
- 11. Conversione di una stringa in un elenco in Python
- 12. Conversione bsxfun con @times per NumPy
- 13. Conversione di Numpy Array su OpenCV Array
- 14. Elenco di ordinamento della struttura dati Python in ordine alfabetico
- 15. Elenco struttura ad albero delle directory in python?
- 16. dati aggregati di panda su una matrice numpy: conversione della struttura dati
- 17. veloce conversione di IplImage di serie Numpy
- 18. Struttura dati più appropriata (Python)
- 19. Incorporamento del codice python + numpy nella callback della DLL C++
- 20. Elenco Javascript come struttura dati?
- 21. Conversione della struttura piatta in gerarchico
- 22. Ordine byte nella struttura
- 23. Elenco di elenchi in serie numpy
- 24. NumPy - Conversione efficiente da tuple a array?
- 25. python numpy machine epsilon
- 26. Buona struttura dati per la conversione dell'unità?
- 27. TypeError angolare: Conversione struttura circolare a JSON
- 28. Python Fuso orario conversione
- 29. Conversione di un elenco di stringhe in un array NumPy in un modo più veloce
- 30. Conversione oggetti Python per rpy2
Se la tua lista è float32 'tolist' la convertirà in' floats's - probabilmente non è quella desiderata. L'uso di 'list (myarray)' non ne risente - perché dovremmo preferire 'tolist'? –
@Mr_and_Mrs_D stai suggerendo che, nonostante abbia fluttuazioni nell'array, ti piacerebbe che l'elenco risultante fosse integer? Questa è una domanda completamente diversa ... e ovviamente dovresti specificare che, nonostante siano valori float32, saranno tutti parte integrante. Ad ogni modo, se tu avessi quella situazione, suppongo che facendo 'myarray.astype (np.int32) .tolist()' sarebbe un'opzione ed esplicita su cosa stai cercando di realizzare. (E infine, 'list (array_of_type_float32)' non fornisce interi qui quando l'ho provato ... quindi non so cosa stai chiedendo.) –
Non ho mai menzionato gli interi: prova 'float32_array = np.array ([0.51764709], np.float32); stampa (float32_array.tolist()); print (list (float32_array)) ' –