gpt4 book ai didi

python - 根据 bin 大小将一个列表分成多个列表

转载 作者:太空狗 更新时间:2023-10-29 21:15:39 27 4
gpt4 key购买 nike

我有一个包含超过 100,000 个值的列表。

我需要根据特定的 bin 宽度(比如 0.1)将列表分成多个较小的列表。谁能帮我写一个 python 程序来做到这一点?

我的列表是这样的

-0.234
-0.04325
-0.43134
-0.315
-0.6322
-0.245
-0.5325
-0.6341
-0.5214
-0.531
-0.124
-0.0252

我想要这样的输出

list1 = [-0.04325, -0.0252] 
list2 = [-0.124]
list3 = [-0.234, -0.245 ]
list4 = [-0.315]
list5 = [-0.43134]
list6 = [-0.5325, -0.5214, -0.531]
list7 = [-0.6322, -0.6341]

最佳答案

这是使用 numpys digitize 的一种简单而有效的方法:

>>> import numpy as np
>>> mylist = np.array([-0.234, -0.04325, -0.43134, -0.315, -0.6322, -0.245,
-0.5325, -0.6341, -0.5214, -0.531, -0.124, -0.0252])
>>> bins = np.arange(0,-1,-0.1)
>>> for i in xrange(1,10):
... mylist[np.digitize(mylist,bins)==i]
...
array([-0.04325, -0.0252 ])
array([-0.124])
array([-0.234, -0.245])
array([-0.315])
array([-0.43134])
array([-0.5325, -0.5214, -0.531 ])
array([-0.6322, -0.6341])
array([], dtype=float64)
array([], dtype=float64)

digitize,返回一个数组,其中包含每个元素所属的 bin 的索引值。

关于python - 根据 bin 大小将一个列表分成多个列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11270991/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com