gpt4 book ai didi

python - 从 gaussian_kde 重采样数组中获取范围内的数字

转载 作者:太空宇宙 更新时间:2023-11-04 09:02:04 25 4
gpt4 key购买 nike

我有一个 gaussian_kde.resample大批。我不知道它是否是一个 numpy 数组,以便我可以使用 numpy 函数。

我有数据0<x<=0.5 3000 个变量,我使用了

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

但这行不通!如何删除数组中的负值?

最佳答案

首先,您可以使用 python 中的“type”调用来检查它是什么类型:

x = kde.resample(10000)
type(x)
numpy.ndarray

其次,它应该按照你写的方式工作,但我会在你的二进制条件下更明确:

print x
array([[ 1.42935658, 4.79293343, 4.2725778 , ..., 2.35775067, 1.69647609]])
x.size
10000
y = x[(x>1.5) & (x<4)]

您可以看到,执行正确的二进制条件并删除值 >1.5 和 <4:

print y
array([ 2.95451084, 2.62400183, 2.79426449, ..., 2.35775067, 1.69647609])
y.size
5676

关于python - 从 gaussian_kde 重采样数组中获取范围内的数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24214076/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com