繁体   English   中英

使用以下命令从数组构建直方图:np.histogram

[英]Building a histogram from an array with: np.histogram

我想了解np.histogram是如何工作的,所以我运行以下代码:

import numpy as np 

a = np.array([[1,2,3,4],[1,2,3,4],[1,5,7,3]])
imhist , bins = np.histogram(a.flatten())

问题是我应该得到显示[0,3,2,3,2,1,0,1]的直方图,而我却得到[3,2,0,3,0,2,1,0 ,0,1]

怎么了?

np.histogram默认有10个箱子。 垃圾箱确定如何对数据进行分组。 在您的情况下,您有12个数据值和10个仓位,这就是为什么您的仓位不是整数并且会调整数据的原因。

尝试使用:

np.histogram(a.flatten(), bins=12) 

代替:)

我希望这有帮助!

第一个问题是在对np.histogram的调用中传递了bins=10的默认值,您可以通过传递所需的bin来解决此问题:

import numpy as np 

a = np.array([[1,2,3,4],[1,2,3,4],[1,5,7,3]])
imhist , bins = np.histogram(a.flatten(), bins=np.arange(9))

print(imhist, bins)

>>> (array([0, 3, 2, 3, 2, 1, 0, 1], dtype=int32),
     array([0, 1, 2, 3, 4, 5, 6, 7, 8]))

在这种情况下,区间从0到8,因为您还需要提供最右边的边缘,因此如果您的最后一个值为7,则最右侧的边缘将为8。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM