python - 关于选择两个列表的最佳选项的建议(最小和最大)python
问题描述
我有三个列表,每个列表有 200,000 项。第一个标题为“config”的列表是配置名称列表(这些是百叶窗配置)。第二个列表具有每个配置的照度性能(相同的顺序,这意味着 config_a001 产生的照度值是 350)。最后一个列表对每个配置都有一个值(顺序也相同,因此 config_002 的值为 0.24)
config = ['config_a001', 'config_a002', ......]
illuminnace = [350, 376, 260, 500, 450,......]
LUR_value = [0.3,0.24,.7,.1,.....]
我需要选择产生最高照度和最低 LUR 值的最佳 5 种配置。如果这不可能,我需要选择具有最低 LUR 值的最佳 5 种配置,但它们的照度应该高于特定阈值,比如 450。
我知道这样的事情应该使用遗传算法来解决,但我在这方面有经验,如果有人在这里提供建议,我将不胜感激。
解决方案
您可以考虑将数据组织到 pandas DataFrame 中:
import pandas as pd
config = ['config_a001', 'config_a002', 'config_a003', 'config_a004', 'config_a005', 'config_a006']
il = [350, 376, 310, 340, 290, 375]
lur = [0.3, 0.24, 0.21, 0.31, 0.24, 0.28]
创建列表字典
d = {'config': config, 'il': il, 'lur': lur}
从您的字典中创建一个 DataFrame 对象
df = pd.DataFrame(d)
使用sort_values()
并切片列中的前 5 个结果config
:
res = df.sort_values(['il', 'lur'], ascending=[False, True])[:5]['config'].values
这提供了一个带有配置值的 numpy 数组。
list(res)
# Result: ['config_a002', 'config_a006', 'config_a001', 'config_a004', 'config_a003']
推荐阅读
- python - 发生特定帧时使用ntlk sum up attributes
- c# - 有没有办法将像这样的双精度 - 1.2676506002282294E+30 转换为常规的“非指数”符号
- r - 在R中以顺序方式从具有最大值的列中减去
- hive - 计算 hive 表中复合字段的大小
- ios - 更新 AudioKit 4.9 和 AKAppleSequencer 导致的链接器错误?
- batch-file - 如何创建批处理文件以特定方式将文件名放入 .txt
- c - C - 如何将宽字符日文字符转换为 UTF-8?
- python - 夹具中的数据库更改似乎不会持续测试
- r - R 数据分析“nycflights13”
- javascript - JavaScript:将 JSON 拆分为几个部分