numpy中list array matrix比较
用python中的numpy包的时候不小心踩了array和matrix的大坑,又引申一下比较list array matrix之间的异同。
数据结构(Data Structures)基本上人如其名——它们只是一种结构,能够将一些数据聚合在一起。换句话说,它们是用来存储一系列相关数据的集合。Python 中有四种内置的数据结构——列表(List)、元组(Tuple)、字典(Dictionary)和集合(Set)。
1、list
list可以明显和array、matrix区分,list通过[ ]申明,支持append extend等方法,没有shape方法。
使用如下:
data=[]
data.append([1,2])
data.extend(2)
list形如:[[1,2,3],[4,5,6],[7,8,9]] 、 [1,2,3,4,5]等
2 array matrix
list变成array: np.array(list)
list变为matrxi:np.mat(list)
array和matrix相互转换: np.asmatrix np.asarray
array变换为list: data.toList()
这两兄弟都有shape属性,但是他俩的区别是啥呢。
matrix是array的子集,matrix只能是2维的,array可以是n维的。
2维就是matrix的shape只有行、列属性,就类似线性代数中的矩阵;
比如说3维的array如同:
下面就来比较array好matrix计算区别:
乘法符号 *:array的乘法符号就是对应元素相乘,比如:
如果行列数不匹配会自动补全,就是numpy的“广播”功能。具体怎么补全自己动手试,讲了也记不住。
matrix的 * 符号就是:矩阵乘法:线性代数中的乘法,比如五行三列*三行两列就会得到五行两列:
matrix想要得到矩阵*这种效果(就是矩阵相同位置的数字进行相乘):使用np.multiply(mat1,mat2)
array想要进行矩阵乘法使用:np.dot(array1,array2)
所以martirx和array中 **符号得到的结果也是不一样的。
版权声明:本文为博主原创文章,转载注明出处即可。 https://blog.csdn.net/u011730199/article/details/78202016
最新文章
- iOS9新特性 window决定程序的状态栏管理问题
- 第三方登录分享功能-ShareSDK for iOS适配问题记录
- 大漠绑定测试工具-VB6
- Scala入门之函数进阶
- DateTime类常用技巧摘录
- ASP函数大全
- HDU 4405
- mysqld -install命令时出现install/remove of the service denied错误的原因和解决办法
- OC语法简写
- 重新定义malloc和free 防止内存泄漏
- FileZilla Server下载以及安装使用
- 百度地图Label 样式:label.setStyle
- ORACLE 动态注册和静态注册的区别(转)
- MBProgressHUD -[__NSCFString sizeWithAttributes:]: unrecognized selector问题解决了
- JavaScript eval() 为什么使用eval()是一个坏主意 什么时候可以使用eval()
- MySQL学习笔记(一)Ubuntu16.04中MySQL安装配置(5.6优化、错误日志、DNS解决)
- Linux 线程实现模型
- css引入的两种方法link和@import的区别和用法
- 用MyEclipse自带工具生成WebService客户端代码
- __dict__和dir()的区别:未完
热门文章
- 752. [BJOI2006] 狼抓兔子
- Oracle数据库to_date函数注意事项
- 关于jsp web项目,jsp页面与servlet数据不同步的解决办法(报错404、405等)即访问.jsp和访问web.xml中注册的/servlet/的区别
- LCD段码驱动
- document.body
- 如何使用外部插件picker
- [ZJOI2007]捉迷藏 (点分树+堆*3)
- 紫书 习题 11-3 UVa 820 (最大流裸题)
- Java里的各种队列
- Log4j-----Log4j使用指南