【问题标题】:Gaussian heat map [duplicate]高斯热图[重复]
【发布时间】:2022-01-22 07:03:23
【问题描述】:

我正在尝试绘制类似于图像的高斯热图峰值,但是在创建正常随机矩阵时,我没有得到这种热图。

这是我的代码,结果是……

任何帮助都很棒!

import numpy as np
import pylab as plt

xy = np.random.normal(loc=256, scale= 200, size = (512,512))
print(xy)
plt.imshow(xy)
plt.show()

【问题讨论】:

标签: python heatmap


【解决方案1】:

np.random.normal 不像你想象的那样工作。 此函数从locscale 参数定义的正态分布中返回随机样本。每个样本相互独立,因此图像只是噪声。

基本上,当您将size 定义为 512 X 512 时,您基本上要求 512 * 512 = 262144 个来自正态分布的独立随机样本,这些样本以 512 X 512 数组的形式排列。这与从正态分布中抽取一个随机值 262144 次并自己重塑结果本质上没有什么不同。

您本质上想要做的是创建一个圆形对称二维数组,其中最中心的值等于或非常接近您想要的 loc 值,并且值远离loc 远离中心去。一旦有了这样的分布,就可以使用scipy.stats.norm 定义一个正态分布对象,该对象具有相同的loc 值和适当的scale。然后,您可以使用该正态分布对象来获取圆形对称二维数组的概率密度 (pdf) 值,该数组将模拟您想要的图像。

【讨论】:

    猜你喜欢
    • 2013-12-16
    • 2017-12-10
    • 2015-07-19
    • 1970-01-01
    • 2020-11-11
    • 1970-01-01
    • 1970-01-01
    • 2020-09-24
    • 2012-10-08
    相关资源
    最近更新 更多