矩阵运算

论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做矩阵运算的更多相关文章

  1. 课程一(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 ...

  2. 给深度学习入门者的Python快速教程 - numpy和Matplotlib篇

    始终无法有效把word排版好的粘贴过来,排版更佳版本请见知乎文章: https://zhuanlan.zhihu.com/p/24309547 实在搞不定博客园的排版,排版更佳的版本在: 给深度学习入 ...

  3. python主要用来做什么

    python这门编程语言在国外极受欢迎,但在国内使用还不是极普遍. 由于python编程效率极高,现在国内的使用者也开始变得越来越多. python主要用来做什么?这个语言到底有哪些作用呢? 下面主是 ...

  4. 学了 Python 能用来做这些!

    来源商业新知网,原标题:学了 Python 能用来做什么? 说起编程语言,Python 也许不是使用最广的,但一定是现在被谈论最多的.随着近年大数据.人工智能的兴起,Python 越来越多的出现在人们 ...

  5. python及pandas,numpy等知识点技巧点学习笔记

    python和java,.net,php web平台交互最好使用web通信方式,不要使用Jypython,IronPython,这样的好处是能够保持程序模块化,解耦性好 python允许使用'''.. ...

  6. python知识大全目录,想学的看过来!

    Python总结篇——知识大全   python装饰器   PyCharm安装与配置,python的Hello World   sort与sorted的区别及实例   我必须得告诉大家的MySQL优化 ...

  7. Python 机器学习库 NumPy 教程

    0 Numpy简单介绍 Numpy是Python的一个科学计算的库,提供了矩阵运算的功能,其一般与Scipy.matplotlib一起使用.其实,list已经提供了类似于矩阵的表示形式,不过numpy ...

  8. 软件测试人必备的 Python 知识图

    之前发过蛮多不少关于 Python 学习的文章,收到大家不少的好评,不过大家也有许多困惑: 现在测试不好做,是不是真的该重新去学一门热门的语言? 入门 Python 该学哪些知识点?该看哪些书? 可以 ...

  9. Python过滤掉numpy.array中非nan数据实例

    代码 需要先导入pandas arr的数据类型为一维的np.array import pandas as pd arr[~pd.isnull(arr)] 补充知识:python numpy.mean( ...

随机推荐

  1. mysql -> 备份与恢复_11

    备份恢复原理 逻辑备份 物理备份 备份工具

  2. 四、Springboot Debug调试

    描述: 在使用maven插件执行spring-boot:run进行启动的时候,如果设置的断点进不去,要进行以下的设置. 1.添加jvm参数配置 在spring-boot的maven插件加上jvmArg ...

  3. spring boot 中使用redis session

    spring boot 默认的httpsession是存在内存中.这种默认方式有几个缺点:1.当分布式部署时,存在session不一致的问题:2.当服务重启时session就会丢失,这时候用户就需要重 ...

  4. Windows Phone 8 获取设备名称

    通过使用Microsoft.Phone.Info.DeviceStatus类,我们可以获取设备的一些信息,如设备厂商,设备名称等.通过Microsoft.Phone.Info.DeviceStatus ...

  5. Shell编程学习1--基础了解

    "#!path"告诉系统path所指的程序为用来解释此脚本文件的Shell程序: 如#!/bin/sh, #!/bin/bash Shell Script的后缀名为.sh; ech ...

  6. 使用mongoose操作mongodb数据库

    1.如何启动mongodb数据库 参考地址:http://www.runoob.com/mongodb/mongodb-window-install.html 在数据库安装的地方,bin文件夹,输入 ...

  7. Jmeter运行结果unicode编码乱码问题

    一.web页面乱码 比如访问百度返回页面显示乱码,如下会有问号 如果想让他显示中文可以按以下操作: 1.打开jmter配置文件 bin/jmeter.properties 2.修改配置文件,查找“sa ...

  8. less常用样式集,清除浮动、背景自适应、背景渐变、圆角、内外阴影、高度宽度计算。

    .clear-float() { content: ''; display: block; clear: both; height:; } //伪元素清除浮动 .after-clear() { &am ...

  9. RESTful API 和 Django REST framework

    100天 cmdb最后一天 #RESTful API - 定义规范 如get就是请求题 - 面向资源编程 把网络任何东西都当作资源 #给一个url,根据方法的不同对资源做不同的操作 #返回结果和状态码 ...

  10. NFS服务简介

    NFS服务简介 NFS是Network File System的缩写,即网络文件系统.NFS是由Sun开发并发展起来的一项用于在不同机器,不同操作系统之间通过网络互相分享各自的文件.NFS serve ...