• np.random.multivariate_normal方法浅析


    从多元正态分布中抽取随机样本。

    多元正态分布,多正态分布或高斯分布是一维正态分布向更高维度的推广。这种分布由其均值和协方差矩阵来确定。这些参数类似于一维正态分布的平均值(平均值或“中心”)和方差(标准差或“宽度”,平方)。

    np.random.multivariate_normal方法用于根据实际情况生成一个多元正态分布矩阵,其在Python3中的定义如下:

    def multivariate_normal(mean, cov, size=None, check_valid=None, tol=None) 

    mean:多元正态分布的维度。(长度为N的一维数组)

    示例:mean = [0, 0]  # 1行2列的一维数组,numpy.ramdom.randn()可以生成一维矩阵。

    cov:多元正态分布的协方差矩阵,且协方差矩阵必须是对称矩阵和半正定矩阵(形状为(N,N)的二维数组)。

    示例:cov = [[1. 0.],  [0. 1.]]  # 可以使用numpy.eye()生成对角矩阵。

    size: 数组的形状(整数或者由整数构成的元组)。如果该值未给定,则返回单个N维的样本(N恰恰是上面mean的长度)。

    示例:size = (3, 3) # 生成的数组的每一个元素是3行3列的矩阵。

    check_valid: 当协方差(上面的cov)矩阵不是半正定矩阵时,程序的处理方式(一共有三种方式:{ ‘warn’, ‘raise’, ‘ignore’ })。igore:忽略协方差矩阵不是半正定矩阵的问题,生成数组。warn:输出警告,但是还是会生成数组。raise:程序报错,且不会生成数组,。

    tol:当协方差矩阵只有一个值时,生成的公差(浮点数)。

    函数示例:

    # -*- coding:utf-8 -*-
    import numpy as np
     
    mean = np.random.randn(2)
    cov = np.eye(2)
    size = (2, 2)
    result = np.random.multivariate_normal(mean, cov, size)
    print(result)
    """
    [[[ 0.90692543  0.62903795]
      [ 0.82555536  1.50642889]]
     [[-0.93568255  1.34735664]
      [-1.26203814  0.37840301]]]
    
    """
  • 相关阅读:
    8088汇编跳转和PSW状态字寄存器
    Delphi的函数指针
    服务器系统及软件常见漏洞
    TGraphiControl响应WM_MOUSEMOVE的过程(以TPaintBox为例)good
    两个奇怪的取地址符号
    把x指针指向的4个字节次序颠倒过来
    DELPHI中的消息处理机制(三种消息处理方法的比较,如何截断消息)
    探索C++的底层机制
    setprecision、fixed、showpoint的用法总结(经典!!超经典!!)
    段寄存器和8种地址寻址方式
  • 原文地址:https://www.cnblogs.com/ceo-python/p/11722864.html
Copyright © 2020-2023  润新知