Python/Numpy之矩阵与数组列表转换
numpy
矩阵数组、列表相比较
- 对比“矩阵数组”与“列表”,“矩阵数组”一般指基于
numpy
的,由于numpy
对其专门优化,因此速度很快,“列表”数python 内置的数据类型,通过嵌套也可以存储多维数据。- 数组中对元素的数据类型有同一性要求,列表则相对宽松
numpy
的矩阵matrix
是数组array
的分支,matrix
的优势是对于矩阵操作相对简单a * b
即矩阵乘法计算,对应数组则需np.dot(a,b)
,除此之外还有一系列的矩阵操作,如转置、共轭等。matrix
是二维的,array
是多维的。
1.列表⇋ 数组⇋ 矩阵
import numpy as np
注:查看数据data
的类型type(data)
(1)列表→ \rightarrow→ 数组, 矩阵
使用
np.array(list)、np.mat(list)
方式转化,二者的转化结果略有差异,见示例
- 列表转化为数组:
array = np.array(list)
- 列表转化为矩阵:
matrix = np.mat(list)
(2)列表← \leftarrow← 数组, 矩阵
使用
tolist()
- 数组转化为列表:
list = array.tolist()
- 矩阵转化为列表:
list = matrix.tolist()
(3)numpy
矩阵⇋数组之间转换
- 矩阵转换为数组:
array = np.array(matrix)
- 数组转换为矩阵:
matrix = np.mat(array)
2.举例如下
(1)列表→ \rightarrow→ 数组, 矩阵
>>> a = [1,2,3]
>>> a
[1, 2, 3]
>>> type(a)
<class 'list'>
>>> b = np.array(a)
>>> b
array([1, 2, 3])
>>> type(b)
<class 'numpy.ndarray'>
>>> c = np.mat(a)
>>> c
matrix([[1, 2, 3]])
>>> type(c)
<class 'numpy.matrix'>
(2)列表← \leftarrow← 数组, 矩阵
>>> b
array([1, 2, 3])
>>> c
matrix([[1, 2, 3]])
>>> c
matrix([[1, 2, 3]])
# 矩阵转列表
# 由于矩阵是二维的,因此转化的列表是嵌套的,如果想一维的转化,可以将矩阵先转化为数组再转化为列表
>>> a1 = c.tolist()
>>> a1
[[1, 2, 3]]
# 数组转列表
>>> a2 = b.tolist()
>>> a2
[1, 2, 3]
(3)numpy
矩阵⇋数组之间转换
>>> b
array([1, 2, 3])
>>> c
matrix([[1, 2, 3]])
>>> array2matrix = np.mat(b)
>>> array2matrix
matrix([[1, 2, 3]])
>>> type(array2matrix)
<class 'numpy.matrix'>
>>> matrix2array = np.array(c)
>>> matrix2array
array([[1, 2, 3]])
>>> type(matrix2array)
<class 'numpy.ndarray'>
更多
Python
数据科学相关见专题Python数据科学技能索引
参考:Python列表、numpy数组和矩阵
版权声明:本文为qq_34159047原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。