关闭

Python之numpy教程(六):线性代数、随机数

标签: pythonnumpy
1319人阅读 评论(0) 收藏 举报

1.用dot函数计算矩阵乘积

x = np.array([[1.,2.,3.],[4.,5.,6.]])
y = np.array([[6.,23.],[-1,7],[8,9]])
x
输出:

array([[ 1.,  2.,  3.],
       [ 4.,  5.,  6.]])
y
输出:

array([[  6.,  23.],
       [ -1.,   7.],
       [  8.,   9.]])
x.dot(y) # 相当于np.dot(x,y)
输出:

array([[  28.,   64.],
       [  67.,  181.]])

2.
np.ones(3)
输出:

array([ 1.,  1.,  1.])
np.dot(x,np.ones(3))
输出:

array([  6.,  15.])

3.计算逆矩阵:inv函数

from numpy.linalg import inv, qr
X = np.random.randn(5,5)
mat = X.T.dot(X)
inv(mat)
输出:

array([[  3.09810926e+00,   9.66906262e-02,  -6.71590697e-01,
          1.76863564e+00,   6.95340665e-01],
       [  9.66906262e-02,   1.82492276e-01,  -2.12923224e-01,
          3.39846096e-01,  -1.55992532e-03],
       [ -6.71590697e-01,  -2.12923224e-01,   6.62563230e-01,
         -9.28381212e-01,  -1.94807430e-01],
       [  1.76863564e+00,   3.39846096e-01,  -9.28381212e-01,
          2.07619786e+00,   3.63450776e-01],
       [  6.95340665e-01,  -1.55992532e-03,  -1.94807430e-01,
          3.63450776e-01,   2.98244346e-01]])
mat.dot(inv(mat))
输出:

array([[  1.00000000e+00,  -9.54097912e-18,   0.00000000e+00,
          0.00000000e+00,  -1.11022302e-16],
       [ -4.44089210e-16,   1.00000000e+00,   1.11022302e-16,
          0.00000000e+00,   0.00000000e+00],
       [ -2.22044605e-16,  -7.02563008e-17,   1.00000000e+00,
          1.11022302e-16,   0.00000000e+00],
       [  1.11022302e-16,  -2.37006595e-16,   2.22044605e-16,
          1.00000000e+00,  -5.55111512e-17],
       [ -8.88178420e-16,  -1.11022302e-16,  -4.44089210e-16,
         -4.44089210e-16,   1.00000000e+00]])

4.qr函数计算OR分解
q, r = qr(mat)
r
输出:

array([[ -2.72698131,  -0.85635373,   3.8710866 ,   3.06751167,
          7.55827106],
       [  0.        , -11.90081274,  -4.41399286,   0.86802486,
         -4.83999815],
       [  0.        ,   0.        ,  -3.80739854,  -2.01002972,
          1.07068051],
       [  0.        ,   0.        ,   0.        ,  -0.79327916,
          2.42858942],
       [  0.        ,   0.        ,   0.        ,   0.        ,
          1.16051992]])

5.常用numpy.linalg函数汇总:


6.用normal函数生产随机正态分布样本:

sample = np.random.normal(size=(4,4))
sample
输出:

array([[-1.47203302, -1.6101196 ,  0.24138146,  1.22912807],
       [-0.15997584, -0.32986161, -1.06285386,  0.89258052],
       [-1.97772238,  0.17555981,  0.14792538, -2.54519949],
       [-0.31237017,  0.58656156, -0.01663986,  1.49902958]])

7.numpy随机函数汇总:



0
0
查看评论

python数据分析(1)-numpy产生随机数

在数据分析中,数据的获取是第一步,numpy.random 模块提供了非常全的自动产生数据API,是学习数据分析的第一步。  总体来说,numpy.random模块分为四个部分,对应四种功能:  1. 简单随机数: 产生简单的随机数据,可以是任何维度  2. 排列...
  • u012501054
  • u012501054
  • 2017-11-30 10:01
  • 475

科学计算:Python ----线性代数基础

科学计算:Python VS. MATLAB(3)----线性代数基础     按:在介绍工具之前先对理论基础进行必要的回顾是很必要的。没有理论的基础,讲再多的应用都是空中楼阁。本文主要设涉及线性代数和矩阵论的基本内容。先回顾这部分理论基础,然后给出MATLAB,继而...
  • ycl295644
  • ycl295644
  • 2016-06-14 13:07
  • 5059

【线性代数公开课MIT Linear Algebra】 实际应用——python中的线性代数(1)

目前已经看完了公开课的三分之一,线性代数中的常见概念也已经差不多全部介绍了一遍,那么在实际应用中会借助于计算机来实现,这里将介绍如何在python中使用我们学到的知识。 NumPy系统是Python的一种开源的数值计算扩展。这种工具可用来存储和处理大型矩阵,比Python自身的嵌套列表(nest...
  • a352611
  • a352611
  • 2015-11-01 21:31
  • 1518

Python:用Numpy解决线性代数的问题

补上一篇介绍Python的Numpy的文章。
  • qcyfred
  • qcyfred
  • 2017-08-15 22:47
  • 434

python线性代数向量

python线性代数向量 ##-----两个向量的相加 def vector_add(v, w): """adds corresponding elements""" return [v_i + w_i ...
  • Vanhukseter
  • Vanhukseter
  • 2016-09-05 15:56
  • 2147

Breeze库API总结(Spark线性代数库)

之前一直用python的numpy处理线代方面的内容很开心,当最初用spark中不能再用numpy库还是有点悲伤的 ... 但是当彻底的接触了Breeze库之后 发现两者根本完全能互相替代啊   真是开心不用定义那么多麻烦的函数和结构了  导入 import breeze.lin...
  • u012102306
  • u012102306
  • 2016-12-05 11:55
  • 3431

Python numpy生成矩阵、串联矩阵

import numpy 生成numpy矩阵的几个相关函数: numpy.array() numpy.zeros() numpy.ones() numpy.eye() 串联生成numpy矩阵的几个相关函数: numpy.array() numpy.row_stack() ...
  • GarfieldEr007
  • GarfieldEr007
  • 2016-05-11 13:13
  • 21539

NumPy 矩阵处理

NumPy 是 Numerical Python 的简称,是高性能计算和数据分析的基础包。本书中几乎所有高级工具都是建立在它的基础之上,下面是它所能做的一些事情: ndarray,快速和节省空间的多维数组,提供数组化的算术运算和高级的 广播 功能。使用标准数学函数对整个数组的数据进行快...
  • linjiebelfast
  • linjiebelfast
  • 2014-01-08 14:17
  • 15953

numpy教程:随机数模块numpy.random

http://blog.csdn.net/pipisorry/article/details/39508417随机数种子RandomStateRandomState exposes a number of methods for generating random numbersdrawn from...
  • pipisorry
  • pipisorry
  • 2014-09-24 00:14
  • 57441

python 用numpy生成多维随机数组

1.产生随机的小数多维数组 import numpy as np a=np.random.random((3,3)) print a 2.产生多维的整数随机数组 import numpy as np a=np.random.randint(0,10,size=[3,3]) ...
  • u013533991
  • u013533991
  • 2014-12-14 11:28
  • 9543
    个人资料
    • 访问:148982次
    • 积分:2125
    • 等级:
    • 排名:千里之外
    • 原创:100篇
    • 转载:1篇
    • 译文:0篇
    • 评论:3条
    文章分类
    最新评论