为了账号安全,请及时绑定邮箱和手机立即绑定

如何从数字列表中获得平均“点差”?

如何从数字列表中获得平均“点差”?

千万里不及你 2021-11-16 15:02:38
假设我有一个数字列表:some_numbers = [16.0,  16.01,  24.53,  22.99,  22.72,  22.71,  22.2,  21.36,  21.34,  21.0,  22.67,  22.62,  15.89,  23.54,  27.0,  21.35,  26.99,  25.46,  22.54,  22.53,  17.99,  22.13,  17.97,  17.96,  17.95,  22.4,  22.32,  22.25,  22.19,  22.16,  20.68,  21.74,  15.38,  11.13,  15.82,  22.33,  22.31,  22.23,  22.15,  22.12,  22.11,  22.07,  18.99,  18.94,  18.86,  18.85,  18.82,  18.81,  16.79,  15.98,  15.96,  15.94,  15.9,  15.86,  15.85,  15.83,  11.47,  11.46,  11.36,  11.34,  11.32,  11.28,  11.26,  11.25,  11.21,  11.19,  11.18,  9.99]但是列表包含的数据有点太多,我想传达传播。我想打印这些数字中的 10 个。1 是最高数字,10 是最低数字,我如何对列表进行排序并打印 10 个数字的范围来表示从最高到最低的点差?假设列表是[1,2,3,4,5,6,7,8,9,10,11,12,13],我想要在该范围内分布四个数字,分布将为[1,5,9,13].
查看完整描述

2 回答

?
烙印99

TA贡献1829条经验 获得超13个赞

尝试这个:

sorted(list)[::len(list)/9]

输出:

[6.34, 11.19, 13.61, 14.56, 15.92, 16.91, 17.97, 19.65, 20.87, 26.81]

编辑:

max(list) 不会在这个名单上,如果 len(list) % 9 != 0


查看完整回答
反对 回复 2021-11-16
?
慕森卡

TA贡献1806条经验 获得超8个赞

使用np.percentile和np.linspace:


import numpy as np


np.percentile(l, np.linspace(100, 0, 10), interpolation='nearest')

# array([27.  , 21.02, 19.7 , 17.99, 16.93, 15.94, 14.57, 13.77, 11.19,

        6.34])

逻辑:


np.percentilewithinterpolation='nearest'返回q给定数组的最近元素。


np.linspace 从 0 到 100 创建等距的 10 个元素,以生成第 q 个百分位数。


查看完整回答
反对 回复 2021-11-16
  • 2 回答
  • 0 关注
  • 147 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信