zoukankan      html  css  js  c++  java
  • <利用python进行数据分析>笔记 4.5~4.8

      今年项目很多,人手又不够,市场销售又不时催新功能,每个人手上都赶着几个项目的任务。领导说你们要抓紧呀,要提需求呀,我想说的是,提加班给加班费能行吗?

    4.5 线性代数

    dot 函数是矩阵的点乘积,就是有两个合适的矩阵 a和b,a的第n行每一个元素乘b的n列的每一个元素,积的和作为结果矩阵的一个元素

    比如 a = [[1,2],

        [3,4]]

      b = [[1,1],

        [2,2]]

      c =a.dot(b)

           c = [[5,5].

        [11,11]]

    也可以 a@b

    numpy.linalg 里有inv 函数就是求矩阵的逆矩阵

    你矩阵就是 如果 a@b = b@a = E,存在E的话,那么a和b互为逆矩阵(这个好像是大学线性代数的知识,基本忘光了,好像那时候考的还不错的呀)

    b = inv(a),如果不报错,就说明存在b作为a的逆矩阵

    inv函数求出的值,可能是精度很高的浮点数:

    a
    Out[137]: 
    array([[1, 2],
           [3, 4]])
    
    b = inv(a)
    
    b[0][0]
    Out[139]: -1.9999999999999998

    理论上 a@b == b@a,运算一下

    a@b
    Out[140]: 
    array([[1.00000000e+00, 1.11022302e-16],
           [0.00000000e+00, 1.00000000e+00]])
    
    b@a
    Out[141]: 
    array([[1.0000000e+00, 4.4408921e-16],
           [0.0000000e+00, 1.0000000e+00]])

    结果来看,精确到小数点后面时,是不一样的,所以inv求出来的应该是近似值

    4.6 伪随机数生成

    npmpy.random 模块,可以设置局部的随机数种子 np.random.RandomState(),全局的是np.random.seed()

    np.random.normal(size=(n,k)),生成n*k的正太分布样本数组

    4.7 随机漫步

    用 np.random.randint(n,k,size=number) 可以生成一个number大小的 n~k之间的数组

  • 相关阅读:
    当简单的计算遇上了大数,其实大数运算也很简单
    揭开源码的神秘面纱,让源码从此无处藏身
    JAVA对象和XML文档、原来他们之间还有这一出
    JAVA反射其实就是那么一回事
    Metatable让我从心认知了Lua(相知篇)
    Github
    常见问题汇总
    文章目录
    前后端分离下使用SignalR
    IdentityServer_0_参考资料
  • 原文地址:https://www.cnblogs.com/yemeng/p/14579570.html
Copyright © 2011-2022 走看看