矩阵运算

论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# 通过Windows服务启动外部程序

    1. 新建一个Windows服务应用程序 创建项目——>Visual C# 左侧的"+"——>Windows ——>Windows 服务(右侧模板)——>输 ...

  2. 使用postman做接口测试(三)

    三,接口用例的设计 个人感觉用例的设计才是重要的哈,网上查了一些资料总结了一下 1.业务流程测试 通过性验证: 1, 按照接口文档上的参数,正常传参,是否可以返回正确的结果 2, 是否满足前提条件,比 ...

  3. js对金额浮点数运算精度的处理方案

    浮点数产生的原因 浮点数转二进制,会出现无限循环数,计算机又对无限循环小数进行舍入处理 js弱语言的解决方案 方法一: 指定要保留的小数位数(0.1+0.2).toFixed(1) = 0.3;这个方 ...

  4. 十五、springboot集成定时任务(Scheduling Tasks)(二)之(线程配置)

    配置类: /** * 定时任务线程配置 * */ @Configuration public class SchedulerConfig implements SchedulingConfigurer ...

  5. php 中更简洁的三元运算符 ?:

    PHP 三元运算符是对参数赋值时候的一个简洁的主要用法. 一个主要的用法: PHP 三元运算符能够让你在一行代码中描述判定代码, 从而替换掉类似以下的代码: <?php if (isset($v ...

  6. C# TimeSpan获取 年月

    public static string GetYearMonthDayString(this DateTime expires) { try { var now = DateTime.Now; Ti ...

  7. java基础74 XML解析中的SAX解析相关知识点(网页知识)

    1.SAX解析工具 SAX解析工具:是Sun公司提供的,内置JDK中.org.xml.sax.*         点击查看: DOM解析相关知识:以及DOM和SAX解析的原理(区别) 2.SAX解析的 ...

  8. lambda表达式与bind函数

    #include<iostream> #include<algorithm> #include<sstream> #include<vector> #i ...

  9. vue.js学习 自定义过滤器使用(1)

    在这个教程中,我们将会通过几个例子,了解和学习VueJs的过滤器.我们参考了一些比较完善的过滤器,比如orderBy 和 filterBy.而且我们可以链式调用过滤器,一个接一个过滤.因此,我们可以定 ...

  10. 如何用python解析mysqldump文件

    一.前言 最近在做离线数据导入HBase项目,涉及将存储在Mysql中的历史数据通过bulkload的方式导入HBase.由于源数据已经不在DB中,而是以文件形式存储在机器磁盘,此文件是mysqldu ...