假設(shè)我有一個數(shù)字列表: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]但是列表包含的數(shù)據(jù)有點太多,我想傳達傳播。我想打印這些數(shù)字中的 10 個。1 是最高數(shù)字,10 是最低數(shù)字,我如何對列表進行排序并打印 10 個數(shù)字的范圍來表示從最高到最低的點差?假設(shè)列表是[1,2,3,4,5,6,7,8,9,10,11,12,13],我想要在該范圍內(nèi)分布四個數(shù)字,分布將為[1,5,9,13].
2 回答

烙印99
TA貢獻1829條經(jīng)驗 獲得超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

慕森卡
TA貢獻1806條經(jīng)驗 獲得超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給定數(shù)組的最近元素。
np.linspace 從 0 到 100 創(chuàng)建等距的 10 個元素,以生成第 q 個百分位數(shù)。
添加回答
舉報
0/150
提交
取消