Python下如何实现多维数组的概率分布统计

比如这么一列数据

10    1
10    7
10    15
20    4
20    17
70    2
70    7
70    9
70    7
70    15
100    13
100    17
150    2
150    4
150    6
200    1
200    2
200    7
200    18
220    17
220    13
220    17

 

最后输出结果

按范围统计次数

              0~50    50~100    100~150    150~200    >200
10~20    2    3    0    1    4
0~10      3    4    3    3    0

按范围统计分布率


    0~50    50~100    100~150    150~200    >200
10~20     7%     11%    0%    4%    14%
0~10      11%    14%    11%    11%    0%

 

该如何实现啊

arr = [
    [10  , 1],
    [10  , 7],
    [10  , 15],
    [20  , 4],
    [20  , 17],
    [70  , 2],
    [70  , 7],
    [70  , 9],
    [70  , 7],
    [70  , 15],
    [100 ,  13],
    [100 ,  17],
    [150 ,  2],
    [150 ,  4],
    [150 ,  6],
    [200 ,  1],
    [200 ,  2],
    [200 ,  7],
    [200 ,  18],
    [220 ,  17],
    [220 ,  13],
    [220 ,  17]
]

t = [[0 for x in range(250//50)] for x in range(20//10)]
da = {}
for v1,v2 in arr:
    t[v2//10][v1//50] += 1

print("{:>10}".format(''),end="")
for i in range(len(t[0])):
    print("{:>10}".format(f"{i*50}-{i*50+50}"),end="")
print()
for i in range(len(t)-1,-1,-1):
    print("{:>10}".format(f"{i*10}-{i*10+10}"),end="")
    for j in range(len(t[i])):
        print("{:>10}".format(t[i][j]),end="")
    print()

print('----------------------------------')

print("{:>10}".format(''),end="")
for i in range(len(t[0])):
    print("{:>10}".format(f"{i*50}-{i*50+50}"),end="")
print()
for i in range(len(t)-1,-1,-1):
    print("{:>10}".format(f"{i*10}-{i*10+10}"),end="")
    for j in range(len(t[i])):
        print("{:>10.2%}".format(t[i][j]/len(arr)),end="")
    print()

 

您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632

非常感谢您使用有问必答服务,为了后续更快速的帮您解决问题,现诚邀您参与有问必答体验反馈。您的建议将会运用到我们的产品优化中,希望能得到您的支持与协助!

速戳参与调研>>>https://t.csdnimg.cn/Kf0y