从要创建的已创建函数生成随机值数组

时间:2013-05-03 16:22:26

标签: python random numpy

我有一个功能:

f = x**0.5*numpy.exp(-x/150)

我使用numpy和matplot.lib来生成f作为x的函数的图,其中包含x:

x = np.linspace(0.0,1000.0, num=10.0)

我想知道如何创建一个随机x值数组,使用我最初制作的x数组为这个函数创建相同的图?

布赖恩

1 个答案:

答案 0 :(得分:2)

我不太清楚你在问什么,但是它只是想要你的“x”阵列中的非常规间隔点这么简单吗?

如果是这样,请考虑对随机值数组进行累加求和。

作为一个简单的例子:

import numpy as np
import matplotlib.pyplot as plt

xmin, xmax, num = 0, 1000, 20
func = lambda x: np.sqrt(x) * np.exp(-x / 150)

# Generate evenly spaced data...
x_even = np.linspace(xmin, xmax, num)

# Generate randomly spaced data...
x = np.random.random(num).cumsum()
# Rescale to desired range
x = (x - x.min()) / x.ptp()
x = (xmax - xmin) * x + xmin

# Plot the results
fig, axes = plt.subplots(nrows=2, sharex=True)
for x, ax in zip([x_even, x_rand], axes):
    ax.plot(x, func(x), marker='o', mfc='red')
axes[0].set_title('Evenly Spaced Points')
axes[1].set_title('Randomly Spaced Points')
plt.show()

enter image description here