我正在尝试找出如何计算不同数字范围的数据百分比。所以我有如下数据:
0.81761
0.255319
0.359551
0.210191
0.374046
0.188406
0.179487
0.265152
0.207792
0.202614
0.150943
..我有这些范围:
0-0.3
0.3-0.7
0.7-1
我想知道我的数据中属于特定数字范围的百分比是多少。例如:
0-0.3 -> 72.7%
0.3-0.7 -> 18.18%
0.7-1 -> 9.09%
有人知道如何做这个计算吗?
答案1
使用awk
:
awk '
# Count occurencies
{
if ($1 < 0.3) a++
else if ($1 > 0.7) c++
else b++
}
# Print Percentage of count/NR (num records)
END {
printf "< 0.3: %.2f%%\n",a/NR*100
printf "> 0.3 and < 0.7: %.2f%%\n",b/NR*100
printf "> 0.7: %.2f%%\n",c/NR*100
}
' file
答案2
您可以使用以下histogram
函数numpy
前任。
$ python
Python 2.7.12 (default, Nov 12 2018, 14:36:49)
[GCC 5.4.0 20160609] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>
>>> import numpy as np
>>>
>>> data = np.loadtxt('datafile')
>>> hist = np.histogram(data,[0,0.3,0.7,1.0])
>>> print 100.0 * hist[0]/sum(hist[0])
[ 72.72727273 18.18181818 9.09090909]
>>>
例如NumPy - 使用 Matplotlib 绘制直方图(当然,您不必绘制结果)。