我正在尝试使用numpy或scipy生成二维数组,例如(10000,1024)。我希望此数组的每一行的元素满足正态分布。但是,每列的元素都是均匀的随机数。
我不知道如何实现这个目标。任何帮助都将不胜感激。
谢谢。
您不能在列上有“完美”的均匀分布,而在行上有正态分布(如果您谈论的是随机变量矩阵)。
但如果刻度(标准偏差)不太宽,则可以组合sps。norm
和sps。统一
,以便位置(平均值)和比例能够足够均匀地按行分布。
例如
# imports
import numpy as np
import scipy.stats as sps
import seaborn as sns
import matplotlib.pyplot as plt
# define rows and columns
# define rows and columns
rows = 10000
cols = 1024
# generate random samples
matrix = sps.norm(
# uniformly distributed locations
loc=sps.uniform(0, 200).rvs(rows).reshape(-1, 1),
# uniformly distributed scales
scale=sps.uniform(1, 5).rvs(rows).reshape(-1, 1),
).rvs((rows, cols))
您可以验证所有行都是正态分布的
fig, ax = plt.subplots(2, 4, figsize=(15, 8))
# take some random test rows
test_rows = np.random.choice(rows, size=8)
# plot rows histplots
for i, row in enumerate(test_rows):
sns.histplot(matrix[row,:].ravel(), ax=ax.flat[i])
ax.flat[i].set(
ylabel=None,
title=f'row {row}'
)
和列非常类似于均匀分布
fig, ax = plt.subplots(2, 4, figsize=(15, 8))
# take some random test columns
test_cols = np.random.choice(cols, size=8)
# plot columns histplots
for i, col in enumerate(test_cols):
sns.histplot(matrix[:,col].ravel(), ax=ax.flat[i])
ax.flat[i].set(
ylabel=None,
title=f'column {col}'
)
但是标准偏差越高,越多的列将偏离均匀分布而趋向正态分布。
问题内容: 您能告诉我任何生成非均匀随机数的方法吗? 我正在使用Java,但是代码示例可以随心所欲。 一种方法是通过将两个统一的随机数加在一起(即滚动2个骰子)来创建歪斜分布。 问题答案: 您想要什么分布的偏差? 这是一种始终有效的技术,但并不总是最有效的。累积扰动函数P(x)给出值低于x的时间的分数。因此,在x的最小可能值处P(x)= 0,在x的最大可能值处P(x)= 1。每个分布都有一个唯一的
这个问题以前也有人问过,但我从来没有真正看到过好的答案。 > 我想生成8个和为0.5的随机数。 我希望每个数字都是从一个均匀分布中随机选择的(即下面的简单函数将不起作用,因为数字将不是均匀分布的)。 代码应该是可推广的,这样您就可以生成N个和M(其中M是正浮点)的均匀随机数。如果可能的话,能否也请你解释一下(或用一个图表示)为什么你的解会在适当的范围内均匀地产生随机数? 失手的相关问题: 在pyt
如何在一定范围内生成安全的统一随机数?范围可能在0到100之间。(上限不是2的幂)。 <代码>java。安全SecureRandom似乎提供了范围0。。2^n。
本文向大家介绍0~1均匀分布的随机器如何变化成均值为0,方差为1的随机器相关面试题,主要包含被问及0~1均匀分布的随机器如何变化成均值为0,方差为1的随机器时的应答技巧和注意事项,需要的朋友参考一下 参考回答: 0~1的均匀分布是均值为1/2,方差为0.转成均值为0,方差为1.概率论题目
本文向大家介绍如何生成一个随机数?相关面试题,主要包含被问及如何生成一个随机数?时的应答技巧和注意事项,需要的朋友参考一下
问题内容: 我试图识别/创建一个函数(在Java中),该函数给我一个非均匀的分布式数字序列。如果我有一个函数说它将给我一个从到的随机数。 该函数最适合任何给定的函数,下面仅是我想要的示例。 但是,如果我们说函数将返回来自分布式的s nonuni。 我想例如说 约占所有案件的20%。 大约是所有情况的50%。 约占所有案件的20%。 大约是所有情况的10。 总之somting,给我一个数字,如正态分