python - 如何在噪声中添加非零元素?
问题描述
我有一个 numpy 数组和一个噪声函数。
def gaussian_noise(X,sigma=0.1):
noise = np.random.normal(0, sigma, X.shape)
return X + noise
如何为非零元素添加一些噪声? 例如:
# input an array
a = array([[1, 0, 3],
[2, 5, 0],
[0, 0, 7]])
b = gaussian_noise(a)
输出:
b = array([[ 0.83781175, 0., 2.99969046],
[ 1.92693919, 4.85350012, 0.],
[0., 0., 7.04896986]])
如何修改我的功能?
解决方案
简单的选择问题
def gaussian_noise(X,sigma=0.1):
X = np.array(X, dtype=np.float)
M = X!=0
noise = np.random.normal(0, sigma, X.shape)
X[M] += noise[M]
return X
会做
推荐阅读
- c++ - 如何在不同的内核上进行多线程内核调度(理想情况下在 C++ 中)
- c# - 包含 C# HttpClient HTTPs TLS 数据
- javascript - 无法使用 Javascript 动态更改 HTML5 视频的来源
- javascript - 在 Knex 中加入表格后如何返回数据数组?
- mocha.js - 我可以将 cypress 作为服务运行以获取 http 请求并在请求中运行命令吗?
- python - Pandas:根据条件使用日期和时间字符串填充列值
- flutter - 实现 Flutter 显式动画以在整个容器中移动小部件的最佳方法是什么?
- java - 使用绑定算法理解 Java Random next Integer
- python - 有没有办法使用 Tkinter 打开文件对话框并返回文件路径,如 ~/filefolder/*.csv
- arrays - 在 Python 中测量两个向量化字数数组之间的距离