Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/reporting-services/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 用高斯分布求数的平方_Python_Random_Gaussian - Fatal编程技术网

Python 用高斯分布求数的平方

Python 用高斯分布求数的平方,python,random,gaussian,Python,Random,Gaussian,有没有一种方法可以使用高斯分布计算一个数字的平方(最接近的近似值),比如4,其中μ是数字,σ是0.16。1000个随机点呢 我在互联网上搜索了很多,但找不到解决这个问题的方法。任何一段代码都会非常有用,因为我是python新手。您可以使用numpy.random.randn生成标准高斯分布,然后根据需要从 对于N(\mu,\sigma^2)中的随机样本,使用: sigma*np.random.randn(…)+mu 以你为例 import numpy as np import matplotli

有没有一种方法可以使用高斯分布计算一个数字的平方(最接近的近似值),比如4,其中μ是数字,σ是0.16。1000个随机点呢


我在互联网上搜索了很多,但找不到解决这个问题的方法。任何一段代码都会非常有用,因为我是python新手。

您可以使用
numpy.random.randn
生成标准高斯分布,然后根据需要从

对于N(\mu,\sigma^2)中的随机样本,使用:

sigma*np.random.randn(…)+mu

以你为例

import numpy as np
import matplotlib.pyplot as plt

N = 4.
mu = N**2
sigma = 1/N**2

dist = np.sqrt(sigma) * np.random.randn(1000) + mu
plt.hist(dist,30)
plt.show()
如果您不想使用numpy,也可以使用随机模块

import random

dist = [random.normalvariate(mu, sigma) for i in range(1000)]

假设您生成了数据,您可以通过取数据的平均值来找到mu的近似值(即数字的平方)。到目前为止,您可以确定,随着数据大小的增长,近似值会变得更精确。例如:

import random


def generate_data(size):
    mu, sigma = 4 ** 2, 0.16
    return [random.gauss(mu, sigma) for _ in range(size)]


def mean(ls):
    return sum(ls) / len(ls)

print(mean(generate_data(10)))     #15.976644889526114
print(mean(generate_data(100)))    #16.004123848232233
print(mean(generate_data(1000)))   #16.00164187802018
print(mean(generate_data(10000)))  #16.001000022147206

你已经试过什么了?您到底是如何实现guassian分布的?你期望输出是什么?这是一个非常奇怪的方法来估计一个数字的平方。。。特别是因为你首先需要正方形来创建高斯分布。你能告诉我们更多关于上下文的情况吗?你需要这个做什么?你在尝试实现蒙特卡罗积分曲面估计器吗?你有没有尝试过
random.gauss()
函数?实际上。我需要用高斯分布计算一个数的平方。主要的背景是,平方应该生成到最接近的近似数字。因为,99%的高斯分布将位于+或-3西格玛的范围内。给我的3sigma值是0.5。这很好。。这很简单,我能很容易地理解。。谢谢你。。你也可以帮我为这个生成一个图表吗???@Sandy.Arv当然可以,但我认为作为一个新问题是合适的