python中列表,数组和矩阵的关系及转换实例
最近在用python做一些项目,经常用到列表,数组和矩阵,有时候搞不清楚什么时候该用三者中的哪一个,并且会涉及到三者之间的转换,这段时间我查阅了一些资料补习了下这些知识,接下来我来说一下自己的理解。
**
1.列表与数组的区别:
简单来说,列表可以用来存储一维数组,而通过列表的嵌套能实现多维数组的存储,并且列表中的元素类型可以是不同的,而数组中的元素类型通常是一样的。
2.矩阵与数组的区别:
矩阵是数组的一个分支,即数组包含矩阵,数组拥有矩阵的所有性质。并且矩阵只能是2维的,而数组可以是多维的。矩阵a和b直接相乘,即ab是矩阵乘;而数组c和d直接相乘,即cd的结果是[ [c1d1,c2d2] ,[c3d3,c4*d4] ]。如需要用数组c和d实现矩阵乘,需要用到numpy的dot命令,即np.dot(c,d)。
3.三者的代码转换实例
import numpy as np
list1=[[1,2,3],[4,5,6],[7,8,9]] #列表
array1=np.array(list1) #列表转数组
matrix1=np.mat(list1) #列表转矩阵
matrix_to_array=np.array(matrix1)#矩阵转数组
array_to_matrix=np.mat(array1)#数组转矩阵
matrix_to_list=matrix1.tolist()#矩阵转列表
print("列表,即list1:",list1)
print("----------------------")
print("列表转为数组,即array1:",array1)
print("----------------------")
print("列表转矩阵,即matrix1:",matrix1)
print("----------------------")
print("矩阵转数组,即matrix_to_array:",matrix_to_array)
print("----------------------")
print("数组转矩阵,即array_to_matrix:",array_to_matrix)
print("----------------------")
print("矩阵转列表,即matrix_to_list:",matrix_to_list)
4.运行结果
列表,即list1: [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
----------------------
列表转为数组,即array1: [[1 2 3]
[4 5 6]
[7 8 9]]
----------------------
列表转矩阵,即matrix1: [[1 2 3]
[4 5 6]
[7 8 9]]
----------------------
矩阵转数组,即matrix_to_array: [[1 2 3]
[4 5 6]
[7 8 9]]
----------------------
数组转矩阵,即array_to_matrix: [[1 2 3]
[4 5 6]
[7 8 9]]
----------------------
矩阵转列表,即matrix_to_list: [[1, 2, 3], [4, 5, 6], [7, 8, 9]]