关于numpy.histogram设置density=True时hist维度的技术疑问
关于numpy.histogram中density=True时hist的维度问题
我来帮你拆解这个问题:
通用规则
首先要明确:density=True参数只会改变返回的hist数组中元素的含义(将频率转换为概率密度,即每个区间的频率除以区间宽度),但不会影响hist的维度/长度。
np.histogram()返回的hist的维度完全由bins参数决定:
- 如果
bins是一个整数n,那么函数会生成n个等宽的区间,返回的hist是一个长度为n的1维numpy数组(维度表示为(n,))。 - 如果
bins是一个自定义的区间数组(比如[0, 0.5, 1.0, 1.5]),那么hist的长度等于len(bins) - 1,同样是1维数组。
针对你的具体例子
你给出的数组A执行代码np.histogram(A, bins=9, density=True)时:
- 这里
bins=9是整数,意味着会创建9个等宽的区间来统计数组A的元素分布。 - 所以返回的
hist是一个长度为9的1维numpy数组,它的维度是(9,)。
你可以自己跑这段代码验证:
import numpy as np A = np.array([ 0.0019879 , -0.00172861, -0.00527226, 0.00639585, -0.00242005, -0.00717373, 0.00371651, 0.00164218, 0.00034572, -0.00864304, -0.00639585, 0.006828 , 0.00354365, 0.00043215, -0.00440795, 0.00544512, 0.00319793, 0.00164218, 0.00025929, -0.00155575, 0.00129646, 0.00259291, -0.0039758 , 0.00328436, 0.00207433, 0.0011236 , 0.00440795, 0.00164218, -0.00319793, 0.00233362, 0.00025929, 0.00017286, 0.0008643 , 0.00363008]) hist, bins = np.histogram(A, bins=9, density=True) print(hist.shape) # 输出 (9,)
内容的提问来源于stack exchange,提问作者goingdeep
相关产品推荐
相关产品推荐

