python - 如何将字符串转换为数字范围(浮点数)?
问题描述
我有一排字符串:
poor: <=0.75; intermediate: >0.75 & <=1.25; normal: >1.25 & <= 2.5; High inducibility: >2.5
我想根据上面的字符串创建一个字典,如下所示:
import numpy
dict = {poor: numpy.arange(0, 0.75, 0.05),
intermediate: numpy.arange(0.75, 1.25, 0.05),
normal: numpy.arange(1.25, 2.5, 0.05),
High: numpy.arange(2.5, 5, 0.05)}
那么,在 python 2.7 中有什么好的方法吗?
谢谢!
解决方案
使用np.digitize
:
import numpy as np
from pprint import pprint
bins = [0.75, 1.25, 2.5]
bin_names = np.array(['poor', 'intermediate', 'normal', 'high'])
data = np.linspace(0, 4, 10, endpoint=False)
result = bin_names[np.digitize(data, bins)]
pprint(list(zip(np.round(data, 1), result)))
输出:
[(0.0, 'poor'),
(0.4, 'poor'),
(0.8, 'intermediate'),
(1.2, 'intermediate'),
(1.6, 'normal'),
(2.0, 'normal'),
(2.4, 'normal'),
(2.8, 'high'),
(3.2, 'high'),
(3.6, 'high')]
推荐阅读
- php - 在 php 中添加页眉/页脚(初级查询)
- docker - 带有 python3 和 CUDA 的 OpenCV 4.2.0:cv2.VideoCapture() 上的段错误
- javascript - 向下部分菜单完全显示文本且无需滚动
- javascript - Invariant Violation 试图获取超出范围索引 NaN 的帧(React Native) - 在 React Native 中获取数据的 FlatList
- python - 如何在 Python 中尝试所有可能的数据框组合,但保持行项的顺序?
- tfs - 分支合并后使用 RestAPI 获取链接的变更集
- php - 使用 Php 从 txt 文件数据库导入数据
- c# - Visual Studio 即时调试器:没有安装的调试器启用了即时调试
- c# - 如何以全精度打印浮点数
- python - for 循环是否会清空 Python 中的列表?