矩阵,数组,列表之间相互转化以及之间的区别

python中提供的基本组合数据类型有集合、序列和字典,列表属于序列类型。数组array和矩阵mat的使用需要用到numpy库,它们可以相互便捷的转化。

from numpy import *
 
#0.列表定义
a1 =[[1,2,3],[4,5,6]]
print('\n0.列表a1 :\n',a1)
 
#1.列表 -----> 数组
a2 = array(a1)
print('\n1.列表a1---->数组a2 :\n',a2)
 
#2.列表 ----> 矩阵
a3 = mat(a1)
print('\n2.列表a1---->矩阵a3 :\n',a3)
 
#3.数组 ---> 列表
a5 = a2.tolist()
print('\n3.数组a2---->列表a5:\n',a5)
 
#4.数组 ---> 矩阵
a6 = mat(a2)
print('\n4.数组a2--->矩阵a6:\n',a6)
 
#5.矩阵 ---> 列表
a4 = a3.tolist()
print('\n5.矩阵a3--->列表a4:\n',a4)
 
#6.矩阵 ---> 数组
a7 = array(a3)
print('\n6.矩阵a3--->数组a7:\n',a7)

Python列表和Numpy数组的区别: 
Numpy使用ndarray对象来处理多维数组,该对象是一个快速而灵活的大数据容器。使用Python列表可以存储一维数组,通过列表的嵌套可以实现多维数组,那么为什么还需要使用Numpy呢?Numpy是专门针对数组的操作和运算进行了设计,所以数组的存储效率和输入输出性能远优于Python中的嵌套列表,数组越大,Numpy的优势就越明显。通常Numpy数组中的所有元素的类型都是相同的,而Python列表中的元素类型是任意的,所以在通用性能方面Numpy数组不及Python列表,但在科学计算中,可以省掉很多循环语句,代码使用方面比Python列表简单的多。

Numpy数组和矩阵的区别: 
1. Numpy matrices必须是2维的,但是 numpy arrays (ndarrays) 可以是多维的(1D,2D,3D····ND). Matrix是Array的一个小的分支,包含于Array。所以matrix 拥有array的所有特性。 
2. 在numpy中相matrix的主要优势是:对简单的乘法运算符号。例如,a和b是两个matrices,那么a*b,就是矩阵积。 
3. matrix 和 array 都可以通过objects后面加.T 得到其转置。但是 matrix objects 还可以在后面加 .H f得到共轭矩阵, 加 .I 得到逆矩阵。 
4. 相反的是在numpy里面arrays遵从逐个元素的运算,所以array:c 和d的c*d运算相当于matlab里面的c.*d运算。而矩阵相乘,则需要numpy里面的dot命令 。 
例如: 


** 运算符的作用也不一样 :因为a是个matrix,所以a**2返回的是a*a,相当于矩阵相乘。而c是array,c**2相当于,c中的元素逐个求平方。 


问题就出来了,如果一个程序里面既有matrix 又有array,会让人脑袋大。但是如果只用array,你不仅可以实现matrix所有的功能,还减少了编程和阅读的麻烦。

当然你可以通过下面的两条命令轻松的实现两者之间的转换:np.asmatrix和np.asarray
numpy 中的array与numpy中的matrix的最大的不同是,在做归约运算时,array的维数会发生变化,但matrix总是保持为2维。例如下面求平均值的运算. 


原文:https://blog.csdn.net/wyl1813240346/article/details/79806207 

原文:https://blog.csdn.net/Albert201605/article/details/85334468 

  • 2
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值