numpy 使用噪波在特定序列上创建均匀分布

30byixjq  于 2022-11-10  发布在  其他
关注(0)|答案(1)|浏览(131)

绘制样本x的最佳方法是什么?样本x的大小为n?如果它是统一的

c = [0.5,0.6,0,0,0.4,0,0.2,0.2,0.1,0.1,0.1] with n = 11

如果我想增加噪音,可以用这个np.random.rand(n)吗?

wfveoks0

wfveoks01#

将允许您在给定的“低”和“高”限制之间生成“n”个不均匀分布的样本。
例如:

import numpy as np

lower_limit = 3
upper_limit = 7
number_of_samples = 11

c = np.random.uniform(lower_limit, upper_limit, number_of_samples)

print (c)

产生:

[6.96837557 6.31203767 6.49680613 6.46568161 3.77999427 3.8421241
 6.27406087 4.60471307 4.5874396  3.7439116  4.69739617]

你的“下限”和“上限”之间的范围可以被认为是样品“噪声”的代用指标。
此处的文档:https://numpy.org/doc/stable/reference/random/generated/numpy.random.uniform.html
如果您要做的是将噪声添加到给定值列表中,则可以生成一个均匀分布的随机数组来表示“噪声”,并将此噪声添加到原始值列表中。例如:

noiseless_values = np.linspace(1, 10, num = 10)
noisy_values = noiseless_values * np.random.uniform(0.9, 1.1, len(noiseless_values))

for noiseless, noisy in zip(noiseless_values, noisy_values):
    print (f'{noiseless:<6}: {noisy:}')

...产生:

1.0   : 1.071975105690119
2.0   : 1.9508717288907071
3.0   : 2.8448791935778157
4.0   : 4.175151052483082
5.0   : 5.056205712396034
6.0   : 6.4584524295884735
7.0   : 6.3247828913239985
8.0   : 8.730239323071011
9.0   : 8.37164223683849
10.0  : 9.133076473380891

希望这能帮上忙。

相关问题