zoukankan      html  css  js  c++  java
  • numpy基础4线性代数等

     1 # coding: utf-8
     2 # 线性代数
     3 
     4 # numpy的线性代数中* 是矩阵的逐元素乘积,不是矩阵的点乘积
     5 import numpy as np
     6 x = np.array([[1., 2., 3.], [4., 5., 6.]])
     7 y = np.array([[6., 23], [-1, 7], [8, 9]])
     8 x.dot(y)
     9 
    10 # 一个二维数组和一个长度合适的一维数组之间的矩阵乘积,其结果是一个一维数组
    11 np.dot(x, np.ones(3))
    12 
    13 # 特殊符号@ 作为中缀操作符,用于点乘积矩阵操作
    14 x @ np.ones(3)
    15 
    16 # 矩阵分解的标准函数集 np.linalg
    17 from numpy.linalg import inv, qr
    18 X = np.random.randn(5, 5)
    19 mat = X.T.dot(X) #X.T.dot(X)是计算X和它的转置矩阵X.T的点乘积。
    20 inv(mat)
    21 mat.dot(inv(mat))
    22 q, r = qr(mat)
    23 r
    24 
    25 #  伪随机数生成
    26 # 生成正态分布样本数组
    27 samples = np.random.normal(size=(4, 4))
    28 samples
    29 
    30 #示例:随机漫步
    31 
    32 import matplotlib.pyplot as plt
    33 import random
    34 position = 0
    35 walk = [position]
    36 steps = 1000
    37 for i in range(steps):
    38     step = 1 if random.randint(0, 1) else -1
    39     position += step
    40     walk.append(position)
    41 
    42 plt.plot(walk[:100])
    43 
    44 #  一次性模拟多次随机漫步
    45 nwalks = 5000
    46 nsteps = 1000
    47 draws = np.random.randint(0, 2, size=(nwalks, nsteps))
    48 steps = np.where(draws > 0, 1, -1)
    49 walks = steps.cumsum(1)
    50 walks
    51 
    52 #计算随机漫步最大值最小值
    53 walks.max()
    54 walks.min()
    55 
    56 # 在这些随机漫步中计算出30或-30的最小穿越时间
    57 hist30 = (np.abs(walks) >= 30).any(1)
    58 hist30
    59 hist30.sum()
    60 
    61 # 使用布尔值数组来选出绝对步数超过30的步所在的行,并使用argmax从轴向1上获取穿越时间
    62 crossing_times = (np.abs(walks[hist30]) >= 30).argmax(1)
    63 crossing_times.mean()

    参考书籍:利用 python 进行数据分析

    作者:舟华520

    出处:https://www.cnblogs.com/xfzh193/

    本文以学习,分享,研究交流为主,欢迎转载,请标明作者出处!

  • 相关阅读:
    《软件架构师的12项修炼》阅读笔记01
    《架构即未来》阅读笔记03
    《一线架构师时间指南》-Refined Architecture阶段
    《架构即未来》阅读笔记02
    《架构即未来》阅读笔记01
    大三下第四周总结
    RPA自动化
    在shell中使用Flask
    用蓝图实现模块化应用
    请求上下文
  • 原文地址:https://www.cnblogs.com/xfzh193/p/11252764.html
Copyright © 2011-2022 走看看