我有一个gaussian_kde.resample
数组。我不知道这是否是一个numpy数组,以便可以使用numpy函数。
我有3000个变量的数据0<x<=0.5
,我使用了
kde = scipy.stats.gaussian_kde(x) # can also mention bandwidth here (x,bandwidth)
sample = kde.resample(100000) # returns 100,000 values that follow the prob distribution of "x"
这给了我一个遵循
"x"
概率分布的数据样本。但是问题是,无论我尝试选择什么带宽,我的"sample"
都将得到很少的负值。 I only want values within the range 0 < sample <= 0.5
我试着做:
sample = np.array(sample) # to convert this to a numpy array
keep = 0<sample<=0.5
sample = sample[keep] # using the binary conditions
但这行不通!如何删除数组中的负值?
最佳答案
首先,kde.resample
的返回值是一个numpy数组,因此您无需重新转换它。
问题出在行中(编辑:不,不行。这应该起作用!)
keep = 0 < sample <= 0.5
它没有做您想的。尝试:
keep = (0 < sample) * (sample <= 0.5)
关于python - 从gaussian_kde_resample数组获取范围内的数字,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24214076/