私がやろうとしているのは、ガウス関数グラフを作成することです。次に、y = [0,1](正規化されているため)&x=[0,200]などのスペース内の任意の場所で乱数を選択します。次に、曲線の上のすべての値を無視し、曲線の下の値のみを保持するようにします。
import numpy
import random
import math
import matplotlib.pyplot as plt
import matplotlib.mlab as mlab
from math import sqrt
from numpy import zeros
from numpy import numarray
variance = input("Input variance of the star:")
mean = input("Input mean of the star:")
x=numpy.linspace(0,200,1000)
sigma = sqrt(variance)
z = max(mlab.normpdf(x,mean,sigma))
foo = (mlab.normpdf(x,mean,sigma))/z
plt.plot(x,foo)
zing = random.random()
random = random.uniform(0,200)
import random
def method2(size):
ret = set()
while len(ret) < size:
ret.add((random.random(), random.uniform(0,200)))
return ret
size = input("Input number of simulations:")
foos = set(foo)
xx = set(x)
method = method2(size)
def undercurve(xx,foos,method):
Upper = numpy.where(foos<(method))
Lower = numpy.where(foos[Upper]>(method[Upper]))
return (xx[Upper])[Lower],(foos[Upper])[Lower]
アンダーカーブを印刷しようとすると、エラーが発生します。
TypeError: 'set' object has no attribute '__getitem__'
そして私はそれを修正する方法がわかりません。
ご覧のとおり、私はPythonとプログラミング全般にまったく慣れていませんが、助けていただければ幸いです。質問がある場合は、できる限り回答します。