Как преобразовать массив NumPy в список Python (например, [[1,2,3],[4,5,6]]
) и сделать это достаточно быстро?Преобразование массива NumPy в структуру списка Python?
156
A
ответ
236
Использование tolist()
:
import numpy as np
>>> np.array([[1,2,3],[4,5,6]]).tolist()
[[1, 2, 3], [4, 5, 6]]
Обратите внимание, что это преобразует значения из любого типа NumPy они могут иметь (например, np.int32 или np.float32) до «ближайшего совместимого типа Python» (в списке) , Если вы хотите сохранить типы данных numpy, вместо этого вы можете вызвать list() в своем массиве, и в итоге вы получите список numpy scalars. (Благодаря Mr_and_Mrs_D для указания, что в комментарии.)
37
Numpy массивы имеют 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
Метод NumPy .tolist производит вложенные массивы, если NumPy форма массива 2D.
Если требуются плоские списки, работает нижеописанный метод.
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`
Смежные вопросы
- 1. Преобразование списка Numpy массива
- 2. Преобразование массива Python Numpy
- 3. Преобразование списка Python в Numpy Array InPlace
- 4. Преобразование массива numpy в список
- 5. Преобразование массива numpy в массив numpy
- 6. Python/Numpy: Преобразование списка BOOLS беззнаковое Int
- 7. Преобразование массива на структуру
- 8. Преобразование 3D-списка в массив 3D NumPy
- 9. Преобразование массива numpy в массив записей numpy
- 10. Преобразование массива numpy в массив массивов numpy
- 11. преобразование массива строк в структуру
- 12. Python/numpy: Получить расположение массива списка значений
- 13. Преобразование массива numpy svg image
- 14. словарь Numpy массива в Python
- 15. Преобразование массива numpy в кортеж
- 16. Преобразование массива numpy в другой
- 17. Преобразование массива numpy в категории
- 18. Преобразование списка 2D массивов numpy в один массив 3D numpy?
- 19. Преобразование массива массива в ndarray NumPy ndarrays
- 20. Преобразование массива 2D numpy в C++ short **?
- 21. Преобразование массива numpy в собственный вектор C++
- 22. Преобразование массива numpy в hex bytearray
- 23. Преобразование многомерного массива numpy в список
- 24. Преобразование массива numpy в переменную тензора anano
- 25. Преобразование типа numpy в python
- 26. Преобразование массива 1D numpy в список списков
- 27. Преобразование из массива numpy float32 в массив numpy float64
- 28. Преобразование массива Numpy массивов DataFrame
- 29. Преобразование массива 1D в матрицу numpy
- 30. HDF5 извлечение массива и преобразование в NumPy
Если ваш список float32 'tolist', он преобразует его в' floats '- это нежелательно. Использование 'list (myarray)' не страдает от этого - почему мы предпочитаем «список»? –
@Mr_and_Mrs_D Вы предполагаете, что, несмотря на то, что у вас есть плавающие массивы, вы хотите, чтобы получившийся список был целым числом? Это совсем другой вопрос ... и, конечно же, вам нужно будет указать, что, несмотря на значения float32, все они будут неотъемлемыми. В любом случае, если бы у вас была такая ситуация, я полагаю, что «myarray.astype (np.int32) .tolist()» будет вариантом и явным образом о том, что вы пытаетесь выполнить. (И, наконец, 'list (array_of_type_float32)' не дает целых чисел здесь, когда я его пробовал ... поэтому я не знаю, что вы просите.) –
Я никогда не упоминал целые числа - попробуйте 'float32_array = np.array ([0,51764709], np.float32); печати (float32_array.tolist()); print (list (float32_array)) ' –