首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Numpy中的二进制

Numpy中的二进制
EN

Stack Overflow用户
提问于 2016-11-30 04:57:21
回答 1查看 2.8K关注 0票数 4

我有一个阵列A,我想把它放进10个箱子里。这就是我所做的。

代码语言:javascript
复制
A = range(1,94)
hist = np.histogram(A, bins=10)
np.digitize(A, hist[1])

但是输出有11个桶,而不是10个,它的最后一个值(93)放在bin 11中,而它应该放在bin 10中。我可以用一个黑客来修复它,但是最优雅的方法是什么呢?我如何告诉数字化,在hist1中的最后一个垃圾箱是包含在右边的-而不是[?)?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-11-30 19:43:27

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

np.digitize方法不会产生这样的异常(因为它的用途不同),因此列表中最大的元素被放置到额外的bin中。要获得与histogram一致的bin赋值,只需使用fmindigitize的输出按回收箱的数量夹紧即可。

代码语言:javascript
复制
A = range(1,94)
bin_count = 10
hist = np.histogram(A, bins=bin_count)
np.fmin(np.digitize(A, hist[1]), bin_count)

输出:

代码语言:javascript
复制
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])
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40880624

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档