用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

最新文章

  1. iOS9新特性 window决定程序的状态栏管理问题
  2. 第三方登录分享功能-ShareSDK for iOS适配问题记录
  3. 大漠绑定测试工具-VB6
  4. Scala入门之函数进阶
  5. DateTime类常用技巧摘录
  6. ASP函数大全
  7. HDU 4405
  8. mysqld -install命令时出现install/remove of the service denied错误的原因和解决办法
  9. OC语法简写
  10. 重新定义malloc和free 防止内存泄漏
  11. FileZilla Server下载以及安装使用
  12. 百度地图Label 样式:label.setStyle
  13. ORACLE 动态注册和静态注册的区别(转)
  14. MBProgressHUD -[__NSCFString sizeWithAttributes:]: unrecognized selector问题解决了
  15. JavaScript eval() 为什么使用eval()是一个坏主意 什么时候可以使用eval()
  16. MySQL学习笔记(一)Ubuntu16.04中MySQL安装配置(5.6优化、错误日志、DNS解决)
  17. Linux 线程实现模型
  18. css引入的两种方法link和@import的区别和用法
  19. 用MyEclipse自带工具生成WebService客户端代码
  20. __dict__和dir()的区别:未完

热门文章

  1. 752. [BJOI2006] 狼抓兔子
  2. Oracle数据库to_date函数注意事项
  3. 关于jsp web项目,jsp页面与servlet数据不同步的解决办法(报错404、405等)即访问.jsp和访问web.xml中注册的/servlet/的区别
  4. LCD段码驱动
  5. document.body
  6. 如何使用外部插件picker
  7. [ZJOI2007]捉迷藏 (点分树+堆*3)
  8. 紫书 习题 11-3 UVa 820 (最大流裸题)
  9. Java里的各种队列
  10. Log4j-----Log4j使用指南