Python:为变量创建高斯分布,并使用高斯值在循环上运行程序

弗拉德

我仍然对python感到满意,并努力解决此问题:

我正在使用名为Fatiando a Terra的工具包在python中运行脚本;我定义了一个物体的参数,然后用重力/梯度法对其进行建模,如下所示:

import numpy as np
from fatiando.vis import mpl
from fatiando.mesher import Prism
from fatiando.gravmag import prism
from fatiando.constants import G
from fatiando import utils
import fatiando
import matplotlib.pyplot as plt

model = Prism(-1000, 1000, -1000, 1000, 1000, 1100, {'density': 300})
n = 500
x = np.zeros(n)
y = np.zeros(n)
z = np.linspace(0, 2000, n)
data = np.array([prism.gx(x, y, z, [model]),
                 prism.gy(x, y, z, [model]),
                 prism.gz(x, y, z, [model]),
                 prism.gxx(x, y, z, [model]),
                 prism.gxy(x, y, z, [model]),
                 prism.gxz(x, y, z, [model]),
                 prism.gyy(x, y, z, [model]),
                 prism.gyz(x, y, z, [model]),
                 prism.gzz(x, y, z, [model])])

在此之后,我正在使用python对其进行绘制,但是此代码无关。

我使用以下命令手动执行了一个微小的高斯数组:

from numpy.random import multivariate_normal
multivariate_normal([300]. [[300]], 10)

它提供给我的10个值是我手动输入到脚本中并生成输出的。

我想做的是对300的密度值执行高斯分布+ -100。我想生成1000个值,并将它们循环回到脚本中,对每个密度变量运行该程序1000次。

对于输出,我当前正在使用:

titles = ['gx', 'gy', 'gz', 'gxx', 'gxy', 'gxz', 'gyy', 'gyz', 'gzz']
np.savetxt(title, np.vstack((z.ravel(), d.ravel())).T)

理想情况下,对于高斯数组,我希望以相同的方式输出文本,但要使用1000个样本的平均值而不是任何单个值。同样,标准偏差也会很大。


抱歉,如果我要求太多,非常感谢您提供的任何帮助。干杯!

用户名

尽管它也可以用作答案,但它更像是一个扩展的评论,而不是一个答案。

将代码包装在一个函数中,然后在循环中调用该函数,并在最后平均结果,可能看起来像这样(部分是象征性的):

##import statements

NDENSITIES = 1000

def dowork(density):
    model = Prism(-1000, 1000, -1000, 1000, 1000, 1100, {'density': 300})
    ##other code
    return data   ## or whatever is important

densities = multivariate_normal([300], [[300]], NDENSITIES)
results = []
for density in range(densities):
    results.append(dowork(density))
results = np.vstack(results)   ## or hstack or dstack, depending on the dimensions of `data`
mean = results.mean()   # possibly: results.mean(axis=0) or with axis=1 etc. Again dependent on the dimensions
std = results.std()

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Python:为变量创建高斯分布,并使用高斯值在循环上运行程序

来自分类Dev

使用高斯分布Python的方差

来自分类Dev

使用matplotlib为正态分布,高斯分布,指数分布和伽玛分布创建动画的问题

来自分类Dev

多重高斯分布

来自分类Dev

无法使用种子生成高斯分布

来自分类Dev

使用高斯分布的数的平方

来自分类Dev

使图像适合高斯分布

来自分类Dev

如何在y轴上绘制高斯分布?

来自分类Dev

如何提取适合R中的高斯分布的值?

来自分类Dev

在Python中生成3D高斯分布

来自分类Dev

Python-将整个列表与高斯分布集成

来自分类Dev

估计曲线与高斯分布的相似度(在Python中)

来自分类Dev

使用cenreg进行删失回归的高斯分布

来自分类Dev

使用 Python numpy.random.randn 绘制多元高斯分布样本

来自分类Dev

在高斯分布中生成HTTP请求

来自分类Dev

R中累积高斯分布的逆

来自分类Dev

多元高斯分布公式的实现

来自分类Dev

如何在具有高斯分布的两个值之间产生随机数

来自分类Dev

如何在高斯分布的两个值之间产生随机数

来自分类Dev

从Matlab到Python:矩形内具有高斯分布的N点

来自分类Dev

如何在 Python 中高效计算两个高斯分布的热图?

来自分类Dev

ValueError:使用高斯分布函数进行归一化期间的比例 < 0

来自分类Dev

如何使随机丢失位遵循高斯分布

来自分类Dev

用固定的某些参数拟合双峰高斯分布

来自分类Dev

多元高斯分布张量流概率的混合

来自分类Dev

如何为ROI生成高斯分布强度?

来自分类Dev

用3个高斯分布生成数组MATLAB

来自分类Dev

Matlab如何生成高斯分布随机数?

来自分类Dev

图像的MATLAB高斯分布的总和大于1

Related 相关文章

热门标签

归档