矩阵运算

论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. C#基础学习之装箱,拆箱

    装箱,拆箱这两个的大条件是有继承关系. 装箱:值类型转换为引用类型 拆箱:引用类型转换为之类 但是要注意大条件. string (引用类型)  int(值类型)   这个转换因为没有继承关系,内存中没 ...

  2. setInterval做定时器

    <script src="/js/jquery-1.8.3.min.js"></script> <script> $(function () { ...

  3. 04 Effective Go 高效的go语言 重点内容

    Effective Go  高效的go语言 Introduction 介绍 Examples 例子 Formatting 格式 Commentary 评论 Names 名字 Package names ...

  4. KVM和远程管理工具virt-manager

    kvm在server端的部署(针对rhel6系统,可以构建本地更新源) 注意:如果只是安装管理工具,可以试试直接执行8步骤 1.对服务器实行kvm虚拟化首先需要确认服务器的物理硬件是否支持 cat / ...

  5. eclipse导入/导出项目要注意三个地方

    这个三个地方的jdk必须保持一致,不报错

  6. GitHub如何使用

    先马克一下,有空看看:http://blog.csdn.net/xiahouzuoxin/article/details/9393119

  7. dedecms调用文章列表第一篇和下面几篇不同的方法

    {dede:arclist row=1 orderby=pubdate infolen=60 limit=0,1} <li class="dot1"><img s ...

  8. ROS二进制日志包 ROS binary logger package

    原文网址: 1 http://www.ros.org/news/2017/02/ros-binary-logger-package.html 2 https://github.com/CNR-ITIA ...

  9. 关于jedis2.4以上版本的连接池配置,及工具类

    jedis.propertise 注意以前版本的maxAcitve和maxWait有所改变,JVM根据系统环境变量ServerType中的值 取不同的配置,实现多环境(测试环境.生产环境)集成. re ...

  10. 【AtCoder】AGC011 C - Squared Graph

    题解 大意是给出一张图,然后建一张新图,新图的点标号是(a,b) 如果a和c有一条边,b和d有一条边,那么(a,b)和(c,d)之间有一条边 我们把这道题当成这道题来做,给出两张图,如果第一张图有边( ...