gpt4 book ai didi

python - 在 Numpy 中装箱

转载 作者:行者123 更新时间:2023-11-28 16:20:11 25 4
gpt4 key购买 nike

我有一个数组 A,我想将其放入 10 个容器中。这是我所做的。

A = range(1,94)
hist = np.histogram(A, bins=10)
np.digitize(A, hist[1])

但是输出有 11 个 bin,而不是 10,最后一个值 (93) 放在 bin 11,而它本应该在 bin 10。我可以用 hack 来修复它,但最优雅的做法是什么这?我如何告诉 digitize hist[1] 中的最后一个 bin 包含在右侧 - [ ] 而不是 [ )?

最佳答案

np.histogram 的输出实际上有 10 个箱子;最后一个(最右边的)bin 包含最大的元素,因为它的右边缘是包容性的(与其他 bin 不同)。

np.digitize 方法不会产生这样的异常(因为它的目的不同)所以列表中最大的元素被放入一个额外的容器中。要获得与 直方图 一致的 bin 分配,只需使用 fmindigitize 的输出钳制在 bin 的数量上。

A = range(1,94)
bin_count = 10
hist = np.histogram(A, bins=bin_count)
np.fmin(np.digitize(A, hist[1]), bin_count)

输出:

array([ 1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  2,  2,  2,  2,  2,  2,  2,
2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4,
4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6,
6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8,
8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 10, 10,
10, 10, 10, 10, 10, 10, 10, 10])

关于python - 在 Numpy 中装箱,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40880624/

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