矩阵运算

论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. ansible的几点记录

    user模块的password加密 ansible中user模块的password需要传入加密数据,可以通过这种方式快速加密: To get a sha512 password hash (rando ...

  2. python 多线程删除MySQL表

    一.需求分析 在<python 统计MySQL表信息>这篇博客中,链接如下: https://www.cnblogs.com/xiao987334176/p/9901692.html 已经 ...

  3. 动态规划面试题基础合集1--数学三角形,LIS , LCS, CSD

    动态规划的一般思路是分为四步,即:寻找最优子结构.递归定义最优子结构.自底向上求解最优子结构和构造最优解. 接下来我列举出几个常见的动态规划面试题进行说明. (1)数学三角形:比较简单,直接贴一个我看 ...

  4. 两类for循环

    九.两类for循环 (一)穷举 1.格式 for (初始条件;循环条件 ;循环改变) { for (初始条件;循环条件;循环改变) { for (初始条件;循环条件;循环改变) { if (判断条件) ...

  5. js 格式化时间,可定义格式

    var format = function (time, format) { var t = new Date(time); var tf = function (i) { return (i < ...

  6. jenkins远程连接linux配置测试

    由于配置原因造成一下错误错误: jenkins.plugins.publish_over.BapPublisherException: Failed to connect session for co ...

  7. PHP学习日记 Windows配置PHP+Nginx+自动化脚本

    Windows配置PHP+Nginx+自动化脚本 安装与配置 PHP 下载PHP:传送门 选择合适的版本下载 尽量选Thread Safe 配置PHP: 解压后在文件夹中找到php.ini-devel ...

  8. CentOS 编译源码安装MySQL-5.6.16

    mysql5.6.16的安装和之前的5.5.5.1有些不同,编译的时候不再使用./configure来进行了,使用了cmake命令来进行编译项目. 1.准备编译环境 yum -y installmak ...

  9. Springboot listener

    在启动流程中,会出发许多ApplicationEvent.这时会调用对应的listener的onApplicationEvent方法.ApplicationEvent时观察者模式, (1) 实体继承A ...

  10. CodeForces 140C New Year Snowmen(堆)

    题面 CodeForces 题解 因为要保证两两不同,所以不能单纯的开堆来维护,堆维护一个二元组,个数为第一关键字,编号为第二关键字,对于一个相同的颜色,统计一下这个颜色的个数再用堆来维护就好了. # ...