gpt4 book ai didi

python - 使用 numpy 将数字放入容器中

转载 作者:行者123 更新时间:2023-11-28 22:53:22 24 4
gpt4 key购买 nike

我正在使用 np.digitize 将一个数组装箱到一组箱中:

data = np.array([1,5,6,15,25,60])
bins = np.array([ 5, 10, 20, 50])
result = np.digitize(data, bins)
# this fails
print bins[result]

我希望将数据放入 bin 中,解释为 bin 中的每个值都被解释为“小于或等于”,除了最后一个 bin,所有其他值都适合。有没有这样做的功能?在这种情况下,它将是:“x <= 5、5 < x <= 10、10 < x <= 20 和 20 < x <= 50,包括 x > 50”。在 numpy 中执行此操作的简洁方法是什么?

最佳答案

当你说 20 < x <= 50 including x > 50对于你的最后一个垃圾箱,你真的在​​说 x>20 .你可以获得x>20放下最后一个垃圾箱 50 . np.digitize接受参数 right什么时候True允许你有类似 10 < x <= 20 的 bin 行为而不是默认的 10 <= x < 20

>>> data = np.array([1,5,6,15,25,60])
>>> bins = np.array([ 5, 10, 20])
>>> np.digitize(data, bins, right=True)
array([0, 0, 1, 2, 3, 3])
>>>

您的代码 bins[result]失败,因为虽然 bins用 3 个值定义实际上有 4 个间隔 (x<=5, 5<x<=10, 10<x<=20, 20<x) .因此,例如 65 将被放置在索引为 3 的 bin 中,即。第 4 个间隔。 bins 的第 4 个值不存在,因此你的错误。

关于python - 使用 numpy 将数字放入容器中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19482306/

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