python - 如何将随机数添加到数组的每个值
问题描述
我想知道如何将给定范围内的随机数添加到数组的每个值。
我有一个由 1000 个值组成的数组,当绘制它时,它会给我一个 S 曲线。
问题是,我想在这条曲线上添加噪声,这就是为什么我想在数组的值中添加一个随机数,每个值都会改变。
我目前的代码是这样的:
import numpy as np
import matplotlib.pyplot as plt
import random
def sigmoid(z):
return 1/(1+np.exp(-z))
n=random.randint(-0.1,0.1)
y = np.arange(-5, 5, 0.01)
print(y)
for i in range(0,1000):
y[i]=y[i]+n
i=i+1
plt.plot(y, sigmoid(y), marker='x')
plt.show()
但是出现了这个错误:“randrange() 的非整数 arg 1”
您对如何解决此问题有任何想法吗?
解决方案
该函数random.randint(a, b)
只接受范围值a
和的整数输入b
,并将返回一个随机整数 N:a <= N <= b。此外,如果你想添加噪音,你不应该只调用random.randint()
一次函数。它将以这种方式为每个索引添加相同的值。我的建议是,使用np.random.rand()
函数。它基本上会生成一个随机数组,您可以指定其形状,其概率分布在 [0, 1) 范围内。您可以通过以下方式扩展和移动基础分布scale * np.random.rand(shape) + shift
推荐阅读
- python - 在频谱图上绘制基于时间的线图
- javascript - 在 Google 地图中打开/关闭标记
- javascript - 尝试发送嵌入时我不断收到错误
- python-3.x - 当我运行一个 tweepy python 脚本时,关联的 Twitter 帐户上没有任何反应
- javascript - 如何使用 cytoscape.js 在单个动画中沿特定方向移动所有节点?
- linkedin - 包含 timeRange 参数时,LinkedIn V2 API 错误“参数中存在未经允许的字段”
- node.js - 在nodejs中需要模块时,如何让基本目录避免使用../../../?
- c# - 当长度低于padleft的长度时,Padleft不在字符串中添加零?
- python - 在 y-achse 上找不到标签
- react-native - React Native 的“Slingshot”样式 UI 控件