Python知识(6)--numpy做矩阵运算
矩阵运算
论numpy中matrix 和 array的区别:http://blog.csdn.net/vincentlipan/article/details/20717163
matrix 和 array的差别: Numpy matrices必须是2维的,但是 numpy arrays (ndarrays) 可以是多维的(1D,2D,3D····ND). Matrix是Array的一个小的分支,包含于Array。所以matrix 拥有array的所有特性。
1.基本运算
import numpy as np a = np.array([[-1,2],[2,3]])
b = np.array([[3,4],[4,5]])
print '\n a:\n',a
print '\n b:\n',b ##转置
print '\n a transpose:\n',a.T ##共扼矩阵
#print '\n a H:\n',a.I ##逆矩阵
print '\n a inv:\n',np.linalg.inv(a) # 求逆 ##转置
print '\n a transpose:\n',a.T # a + b,矩阵相加
print "\n a+b: \n",a+b # a - b,矩阵相减
print "\n a-b: \n",a-b #2x2 矩阵,矩阵相乘
print "\n a mul b:\n",a.dot(b.T) #2x3矩阵,矩阵点乘
print "\n a dot b: \n",a*b #2x3矩阵,矩阵点除
print "\n a/b \n:",a/np.linalg.inv(b) #求迹
print "\n a trace",np.trace(a) #特征,特征向量
eigval,eigvec = np.linalg.eig(a)
#eigval = np.linalg.eigvals(a) #直接求解特征值 print "\n a eig value:\n",eigval,
print'\n a eig vector:\n',eigvec
运算结果:
a:
[[-1 2]
[ 2 3]] b:
[[3 4]
[4 5]] a transpose:
[[-1 2]
[ 2 3]] a inv:
[[-0.42857143 0.28571429]
[ 0.28571429 0.14285714]] a transpose:
[[-1 2]
[ 2 3]] a+b:
[[2 6]
[6 8]] a-b:
[[-4 -2]
[-2 -2]] a mul b:
[[ 5 6]
[18 23]] a dot b:
[[-3 8]
[ 8 15]] a/b
: [[ 0.2 0.5]
[ 0.5 -1. ]] a trace 2 a eig value:
[-1.82842712 3.82842712]
a eig vector:
[[-0.92387953 -0.38268343]
[ 0.38268343 -0.92387953]]
2.特殊矩阵
import numpy as np
a = np.zeros([4,5]) # all zero
print '\nall zero \n',a
a = np.ones([7,6]) # all one
print '\nall one \n',a
a = np.eye(4,7) # 4x7 diagonal
print '\n4x7 diagonal \n',a
a = np.diag(range(5)) # 5x5 diagonal
print '\n5x5 diagonal \n',a
a = np.empty((2,3))
print '\nempty \n',a a = np.arange(10, 30, 5) # array([10, 15, 20, 25]), 1-D
print '\n array([10, 15, 20, 25]), 1-D \n',a
a = np.linspace(0, 2, 9) # 9 numbers from 0 to 2
print '\n9 numbers from 0 to 2 \n',a
a = np.random.random((2,3)) # random matrics
print '\nrandom matrics \n',a
import numpy as np
a = np.zeros([4,5]) # all zero
print '\nall zero \n',a
a = np.ones([7,6]) # all one
print '\nall one \n',a
a = np.eye(4,7) # 4x7 diagonal
print '\n4x7 diagonal \n',a
a = np.diag(range(5)) # 5x5 diagonal
print '\n5x5 diagonal \n',a
a = np.empty((2,3))
print '\nempty \n',a
a = np.arange(10, 30, 5) # array([10, 15, 20, 25]), 1-D
print '\n array([10, 15, 20, 25]), 1-D \n',a
a = np.linspace(0, 2, 9) # 9 numbers from 0 to 2
print '\n9 numbers from 0 to 2 \n',a
a = np.random.random((2,3)) # random matrics
print '\nrandom matrics \n',a
运算结果:
all zero
[[ 0. 0. 0. 0. 0.]
[ 0. 0. 0. 0. 0.]
[ 0. 0. 0. 0. 0.]
[ 0. 0. 0. 0. 0.]] all one
[[ 1. 1. 1. 1. 1. 1.]
[ 1. 1. 1. 1. 1. 1.]
[ 1. 1. 1. 1. 1. 1.]
[ 1. 1. 1. 1. 1. 1.]
[ 1. 1. 1. 1. 1. 1.]
[ 1. 1. 1. 1. 1. 1.]
[ 1. 1. 1. 1. 1. 1.]] 4x7 diagonal
[[ 1. 0. 0. 0. 0. 0. 0.]
[ 0. 1. 0. 0. 0. 0. 0.]
[ 0. 0. 1. 0. 0. 0. 0.]
[ 0. 0. 0. 1. 0. 0. 0.]] 5x5 diagonal
[[0 0 0 0 0]
[0 1 0 0 0]
[0 0 2 0 0]
[0 0 0 3 0]
[0 0 0 0 4]] empty
[[ 0.06012241 0.30847312 0.20174074]
[ 0.37654373 0.71036135 0.15586512]] array([10, 15, 20, 25]), 1-D
[10 15 20 25] 9 numbers from 0 to 2
[ 0. 0.25 0.5 0.75 1. 1.25 1.5 1.75 2. ] random matrics
[[ 0.44052293 0.42283564 0.44825331]
[ 0.66735609 0.32664018 0.17015328]]
Python知识(6)--numpy做矩阵运算的更多相关文章
- 课程一(Neural Networks and Deep Learning),第二周(Basics of Neural Network programming)—— 3、Python Basics with numpy (optional)
Python Basics with numpy (optional)Welcome to your first (Optional) programming exercise of the deep ...
- 给深度学习入门者的Python快速教程 - numpy和Matplotlib篇
始终无法有效把word排版好的粘贴过来,排版更佳版本请见知乎文章: https://zhuanlan.zhihu.com/p/24309547 实在搞不定博客园的排版,排版更佳的版本在: 给深度学习入 ...
- python主要用来做什么
python这门编程语言在国外极受欢迎,但在国内使用还不是极普遍. 由于python编程效率极高,现在国内的使用者也开始变得越来越多. python主要用来做什么?这个语言到底有哪些作用呢? 下面主是 ...
- 学了 Python 能用来做这些!
来源商业新知网,原标题:学了 Python 能用来做什么? 说起编程语言,Python 也许不是使用最广的,但一定是现在被谈论最多的.随着近年大数据.人工智能的兴起,Python 越来越多的出现在人们 ...
- python及pandas,numpy等知识点技巧点学习笔记
python和java,.net,php web平台交互最好使用web通信方式,不要使用Jypython,IronPython,这样的好处是能够保持程序模块化,解耦性好 python允许使用'''.. ...
- python知识大全目录,想学的看过来!
Python总结篇——知识大全 python装饰器 PyCharm安装与配置,python的Hello World sort与sorted的区别及实例 我必须得告诉大家的MySQL优化 ...
- Python 机器学习库 NumPy 教程
0 Numpy简单介绍 Numpy是Python的一个科学计算的库,提供了矩阵运算的功能,其一般与Scipy.matplotlib一起使用.其实,list已经提供了类似于矩阵的表示形式,不过numpy ...
- 软件测试人必备的 Python 知识图
之前发过蛮多不少关于 Python 学习的文章,收到大家不少的好评,不过大家也有许多困惑: 现在测试不好做,是不是真的该重新去学一门热门的语言? 入门 Python 该学哪些知识点?该看哪些书? 可以 ...
- Python过滤掉numpy.array中非nan数据实例
代码 需要先导入pandas arr的数据类型为一维的np.array import pandas as pd arr[~pd.isnull(arr)] 补充知识:python numpy.mean( ...
随机推荐
- ProtocolBuffer 使用及 一些坑
Protocol Buffers,是Google公司开发的一种数据描述语言,类似于XML能够将结构化数据序列化,可用于数据存储.通信协议等方面. ProtocolBuffer的优势 跨平台: Prot ...
- 基于timestamp和nonce的防止重放攻击方案
参考:http://blog.csdn.net/koastal/article/details/53456696
- SQLAlchemy-对象关系教程ORM-query
一:对象关系教程查询 一个 Query创建对象时使用 Session的query()方法 .此函数接受一个变量数量的参数,可以是任何类和class-instrumented描述符的组合. Query返 ...
- 常用sql 全记录(添加中)
-- 数据库SQL总结中........... --SQL分类: (CREATE,ALTER,DROP,DECLARE) ---DDL—数据定义语言(SELECT,DELETE,UPDATE,INSE ...
- MySQL学习笔记:delete from与truncate table的区别
在Mysql数据库的使用过程中,删除表数据可以通过以下2种方式: delete from table_name truncate table table_name (1)delete from语句可以 ...
- Ninject中调用webapi卡住的情况解决
过年这两天在家做项目,把mvc升级到了5.1,webapi升级到了2.1,忽然发现一个问题,在某些页面上ajax调用webapi时会发现卡死现象,CPU也没有被占用,就是网页一些在加载也不报错,经过2 ...
- netty 并发访问测试配置
linux – 1.查看有关的选项 /sbin/sysctl -a|grep net.ipv4.tcp_tw net.ipv4.tcp_tw_reuse = 0 #表示开启重用.允许将 ...
- php判断是否是ajax提交 方法
/** * 判断是否是AJAX提交 * @return bool */ function is_ajax() { if(isset($_SERVER['HTTP_X_REQUESTED_WITH']) ...
- 8-3 4Values Whose Sum is Zero 和为0的四个值
给定四个n元素集合 ABCD 要求分别从中取一个元素 abcd 使得他们的合为0 问有多少中取法 map果然炸了 #include<bits/stdc++.h> using n ...
- 在PHP中gmtime()与time()区别
localtime是把从1970-1-1零点零分到当前时间系统所偏移的秒数时间转换为本地时间,而gmtime函数转换后的时间没有经过时区变换,是UTC时间.2.说明:此函数获得的tm结构体的时间是日历 ...