gpt4 book ai didi

python - numpy.digitize 返回超出范围的值?

转载 作者:太空狗 更新时间:2023-10-30 02:06:20 27 4
gpt4 key购买 nike

我正在使用以下代码将数组数字化为 16 个 bin:

numpy.digitize(array, bins=numpy.histogram(array, bins=16)[1])

我希望输出在 [1, 16] 范围内,因为有 16 个 bin。但是,返回的数组中有一个值是 17。这怎么解释?

最佳答案

这实际上是 numpy.digitize() 的记录行为:

Each index i returned is such that bins[i-1] <= x < bins[i] if bins is monotonically increasing, or bins[i-1] > x >= bins[i] if bins is monotonically decreasing. If values in x are beyond the bounds of bins, 0 or len(bins) is returned as appropriate.

所以在你的情况下,017也是有效的返回值(请注意 numpy.histogram() 返回的 bin 数组的长度为 17 )。 numpy.histogram() 返回的垃圾箱覆盖范围array.min()array.max() .文档中给出的条件表明 array.min()属于第一个箱子,而array.max()位于最后一个垃圾桶外面——这就是为什么 0不在输出中,而 17 是。

关于python - numpy.digitize 返回超出范围的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4355132/

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