Как сделать список из матричной матрицы в Python

Я использую функцию dot () из numpy, чтобы умножить матрицу 3×3 на numpy.array 1×3. Выходной сигнал, например, выглядит следующим образом:

[[0.16666667 0.66666667 0.16666667]]

который имеет тип:

<class 'numpy.matrixlib.defmatrix.matrix'> 

как я могу преобразовать это в список. Поскольку я знаю, что результат всегда будет матрицей 1×3, поэтому он должен быть скрыт до списка, потому что мне нужно будет пропустить его позже для вычисления расстояния pearson двух из этих списков.

Итак, чтобы обобщить: как я могу составить список из этой матрицы?

9 Solutions collect form web for “Как сделать список из матричной матрицы в Python”

Возможно, это не оптимальный способ, но следующие работы:

 a = numpy.matrix([[ 0.16666667, 0.66666667, 0.16666667]]) list(numpy.array(a).reshape(-1,)) 

или

 numpy.array(a).reshape(-1,).tolist() 

или

 numpy.array(a)[0].tolist() 

Используйте метод tolist () для объекта матрицы:

 >>> import numpy >>> m = numpy.matrix([1, 2, 3]) >>> type(m) <class 'numpy.core.defmatrix.matrix'> >>> m.tolist() [[1, 2, 3]] 

Если a – ваша матрица, попробуйте

 a.ravel().tolist() 

но вам не нужно превращать его в список, чтобы перебирать его.

Другой путь:

 >>> import numpy as np >>> m = np.matrix([1,2,3]) >>> np.array(m).flatten().tolist() [1,2,3] 
 m = numpy.matrix([[ 0.16666667, 0.66666667, 0.16666667]]) a = numpy.array(m)[0] for i in a: print i 

приводит к

 0.16666667 0.66666667 0.16666667 

Попробуйте этот упрощенный подход. Он работает с 1D массивами, не знаю с более высокими измерениями.

 import mumpy as np # to create a numpy array example a = np.array([1,2.5,3]) # your 1D numpy array b = [i for i in a] # your list out of the original numpy array 

почему не просто:

 list(a.flat) 

например:

 >>> import numpy as np >>> a = np.matrix([[ 0.16666667, 0.66666667, 0.16666667]]) >>> a matrix([[ 0.16666667, 0.66666667, 0.16666667]]) >>> a.flat <numpy.flatiter object at 0x0000000002DE8CC0> >>> a.flat.tolist() Traceback (most recent call last): File "<stdin>", line 1, in <module> AttributeError: 'numpy.flatiter' object has no attribute 'tolist' >>> list(a.flat) [0.16666666999999999, 0.66666667000000002, 0.16666666999999999] 

Я пришел сюда, чтобы найти способ преобразования матриц numpy в типичные 2D-списки.

Для матричной матрицы m:

 my_2d_list = map(list, list(mA)) 

Если вам нужен только один размерный список из матрицы 1 xn m:

 my_1d_list = list(list(mA)[0]) 
 import numpy as np a = np.matrix([[1,2,3,4]]) b = map(float, a.transpose()) 

Этот фрагмент кода применит встроенную функцию «float» – которая преобразует что-то в число с плавающей запятой – к каждому элементу a . Поскольку первый элемент a является самим массивом, он должен быть транспонирован, так что каждое число становится элементом самого. a.transpose () эквивалентен np.matrix ([[1], [2], [3], [4]]) в этом примере.

 
Interesting Posts for Van-Lav

Дамп памяти, отформатированный как xxd из gdb

Как использовать тайм-аут при синхронизации функции

Семантика назначения x = y = z в Python

Побочный эффект Python PropertyMock с атрибутами AttributeError и ValueError

python продолжается, если условие не выполнено

Как отправить файл через HTTP с помощью стандартной библиотеки Python

Python: проверьте, не пусты ли все словари в списке

максимальная глубина рекурсии превышена в ошибке cmp при выполнении python manage.py runningerver

Асинхронный Python для периодической отправки данных с использованием тайм-аута переменной. Есть ли способ лучше?

Асинхронные вставки базы данных – python + mysql

Поверхностная кривизна Matlab эквивалент в Python

Читать только текстовый виджет в python3-tkinter; кросс-платформа

Отключить ведение журнала для определенного пакета

AttributeError: объект 'NoneType' не имеет атрибута 'format'

Создайте раскладную сводную диаграмму в matplotlib

Python - лучший язык программирования в мире.