numpy.histogram的输出元组使用两个具有不同长度的列表还原一个元组

时间:2018-07-23 06:09:22

标签: python python-3.x numpy

np.histogram([1,2,1,1,1,1,3,5], bins=[0,1,2,3,4,5])

为我返回一个带有列表的元组,该列表包括一个数字在我的输入列表中的出现频率以及作为列表的bin的计数。 输出看起来像这样:

(array([0, 5, 1, 1, 1], dtype=int32), array([0, 1, 2, 3, 4, 5]))

如果我想打印易读的数据,例如:

0 occurs 0 times
1 occurs 5 times
....

我怎么能说这4次出现0次?

1 个答案:

答案 0 :(得分:1)

在您的特定情况下,您正在寻找左边的条带边界(因为它包含在条带中,而右边的边界则没有-除了最后一条包含它自己的右边边界的条带之外)。函数zip组合了两个列表/数组。如果其中一个列表较长,则会被截断,这就是您想要的:

hist = np.histogram([1,2,1,1,1,1,3,5], bins=[0,1,2,3,4,5,6])
for count, left_bin in zip(*hist):
    print(left_bin, count)
#0 0
#1 5
#2 1
#3 1
#4 0
#5 1