gwydion允许用户轻松生成伪随机科学数据。
Gwydion的Python项目详细描述
重力
gwydion允许用户轻松生成伪随机科学数据。
本着Faker的精神,gwydion允许您生成伪随机 使用简单、干净和可定制的api的数据。
gwydion以trickster from Welsh mythology命名。
示例
下面给出了gwydion对象的一些基本示例。
在第一个例子中,我们创建了一个简单的Linear对象,由数学关系y = mx + c给出。 当用户没有设置参数时,gwydion对象将默认为合适的随机值。默认情况下,对象还将向y数据添加一些随机噪声。 在下面的示例中,我们允许Linear对象生成所有参数,但手动设置数据点的数目N。
from gwydion import Linear lin = Linear(N=6) x, y = lin.data print(x, y, sep='\n') # [ 0. 2. 4. 6. 8. 10.] # [ -0.17387604 5.59216341 11.77162695 17.70041889 23.55609025 28.67617757]
在第二个示例中,使用各种手动选择的参数创建Exponential函数。 指数函数由y = I * base**(k*x)给出。 在下面的示例中,我们设置了:
- 数据点的数目N = 3,
- 强度I = 10,
- 指数乘法器k = -1,
- x限制xlim = (0, 10),
- 并选择不向数据中添加任何随机噪声add_rand = False。
对于Exponential对象,默认的base不是随机的,而是欧拉数e = 2.71828...。 这个事实,加上k = -1,意味着下面的对象有效地给出了指数衰减。
from gwydion import Exponential exp = Exponential(N=3, I=10, k=-1, xlim=(0,10), add_rand=False) x, y = exp.data print(x, y, sep='\n') # [ 0. 5. 10.] # [ 1.00000000e+01 6.73794700e-02 4.53999298e-04]
最后,让我们看看Gwydion对象如何与matplotlib一起工作。在下面的示例中,我们生成 5Sine使用列表理解的对象。然后我们可以使用plot函数轻松地绘制每个数据集。
from gwydion import Sine import matplotlib.pyplot as plt sines = [Sine(xlim=(0,5)) for _ in range(5)] fig, ax = plt.subplots() for sine in sines: sine.plot(ax=ax) ax.set_xlabel('Time') ax.set_ylabel('Intensity') plt.show()