python函数中将变量名转换成字符串实例


Posted in Python onMay 11, 2020

考虑到在日常中,常常需要对模型指标输出,但涉及多个模型的时候,需要对其有标示输出,故需要将模型变量名转换成字符串。

看到的基本方法有两种:

一、方法层面:

方法1(函数内推荐):

def namestr(obj, namespace):
 return [name for name in namespace if namespace[name] is obj]
print(namestr(lr_origin,globals()),'\n',
namestr(lr_origin,globals())[0])

输出:

‘lr_origin'

方法2:

import inspect, re
def varname(p):
 for line in inspect.getframeinfo(inspect.currentframe().f_back)[3]:
 m = re.search(r'\bvarname\s*\(\s*([A-Za-z_][A-Za-z0-9_]*)\s*\)', line)
 if m:
 return m.group(1)
varname(lr_origin)

输出:

'lr_origin'

二、示例

采用方法1

def small_feature_model(model,X_train=X_train,y_train=y_train,X_test=X_test, y_test=y_test):
 pca = PCA(n_components=150,random_state=0,whiten=True)
 pipeline = Pipeline([('scale',StandardScaler()),('pca',pca)])
 processing = pipeline.fit(X_train)
 X_train = processing.transform(X_train)
 X_test = processing.transform(X_test)
 model.fit(X_train, y_train)
 y_pred = model.predict(X_test)
# print(namestr(model,globals()))
 print('**small-%s的准确率**: %.3f' %(namestr(model,globals())[0],accuracy_score(y_pred=y_pred, y_true=y_test)))
 small_feature_model(svm_origin)

输出

['svm_origin']
**small-svm_origin的准确率**: 0.789

for model in [svm_origin, svm_rbf, lr_origin]:
small_feature_model(model)

输出

**small-svm_origin的准确率**: 0.789
**small-svm_rbf的准确率**: 0.811
**small-lr_origin的准确率**: 0.835

采用方法2

def small_feature_model(model,X_train=X_train,y_train=y_train,X_test=X_test, y_test=y_test):
 pca = PCA(n_components=150,random_state=0,whiten=True)
 pipeline = Pipeline([('scale',StandardScaler()),('pca',pca)])
 processing = pipeline.fit(X_train)
 X_train = processing.transform(X_train)
 X_test = processing.transform(X_test)
 model.fit(X_train, y_train)
 y_pred = model.predict(X_test)
# print(namestr(model,globals()))
 print('**small-%s的准确率**: %.3f' %(varname(model),accuracy_score(y_pred=y_pred, y_true=y_test)))
 small_feature_model(svm_origin)

输出

**small-model的准确率**: 0.789

for model in [svm_origin, svm_rbf, lr_origin]:
small_feature_model(model)

输出

**small-model的准确率**: 0.789
**small-model的准确率**: 0.811
**small-model的准确率**: 0.835

补充知识:一个python实现翻转字符串的函数

实现字符串翻转的函数(python)

string = 'abcdef'
def demo1(string):
 if len(string) <= 1:
  return string
 return demo1(string[1:]) +string[0]
print(demo1(string))

中间用到了递归和切片不知道效率如何

以上这篇python函数中将变量名转换成字符串实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
使用优化器来提升Python程序的执行效率的教程
Apr 02 Python
TensorFlow实现创建分类器
Feb 06 Python
使用python存储网页上的图片实例
May 22 Python
使用python接入微信聊天机器人
Mar 31 Python
Pytorch在dataloader类中设置shuffle的随机数种子方式
Jan 14 Python
详解python内置常用高阶函数(列出了5个常用的)
Feb 21 Python
在pytorch中实现只让指定变量向后传播梯度
Feb 29 Python
python实现IOU计算案例
Apr 12 Python
python 解决Fatal error in launcher:错误问题
May 21 Python
python 在sql语句中使用%s,%d,%f说明
Jun 06 Python
Python中BeautifulSoup通过查找Id获取元素信息
Dec 07 Python
Python多个MP4合成视频的实现方法
Jul 16 Python
Python 字节流,字符串,十六进制相互转换实例(binascii,bytes)
May 11 #Python
基于python实现获取网页图片过程解析
May 11 #Python
python将unicode和str互相转化的实现
May 11 #Python
Python3之乱码\xe6\x97\xa0\xe6\xb3\x95处理方式
May 11 #Python
Python urllib.request对象案例解析
May 11 #Python
python将dict中的unicode打印成中文实例
May 11 #Python
ansible-playbook实现自动部署KVM及安装python3的详细教程
May 11 #Python
You might like
全国FM电台频率大全 - 6 辽宁省
2020/03/11 无线电
php 连接mssql数据库 初学php笔记
2010/03/01 PHP
跟我学Laravel之配置Laravel
2014/10/15 PHP
php支付宝APP支付功能
2020/07/29 PHP
网页中实现浏览器的最大,最小化和关闭按钮
2007/03/12 Javascript
Mootools 1.2教程(2) DOM选择器
2009/09/14 Javascript
jQuery学习笔记(3)--用jquery(插件)实现多选项卡功能
2013/04/08 Javascript
改变隐藏的input中value的值代码
2013/12/30 Javascript
动态加载js、css等文件跨iframe实现
2014/02/24 Javascript
angularJS结合canvas画图例子
2015/02/09 Javascript
JavaScript数组的栈方法与队列方法详解
2016/05/26 Javascript
jQuery视差滚动效果网页实现方法经验总结
2016/09/29 Javascript
jQuery 检查某个元素在页面上是否存在实例代码
2016/10/27 Javascript
了解在JavaScript中将值转换为字符串的5种方法
2019/06/06 Javascript
JS实现排行榜文字向上滚动轮播效果
2019/11/26 Javascript
JavaScript实现跟随鼠标移动的盒子
2021/01/28 Javascript
[57:18]DOTA2上海特级锦标赛主赛事日 - 1 败者组第一轮#3VP VS VG
2016/03/03 DOTA
[00:12]DAC2018 no[o]ne亮相SOLO赛 他是否如他的id一样无人可挡?
2018/04/06 DOTA
python实现识别手写数字 python图像识别算法
2020/03/23 Python
Python 字符串操作(string替换、删除、截取、复制、连接、比较、查找、包含、大小写转换、分割等)
2018/03/19 Python
浅析python打包工具distutils、setuptools
2018/04/20 Python
PyCharm代码整体缩进,反向缩进的方法
2018/06/25 Python
python开发之anaconda以及win7下安装gensim的方法
2019/07/05 Python
Python全局锁中如何合理运用多线程(多进程)
2019/11/06 Python
pycharm进入时每次都是insert模式的解决方式
2021/02/05 Python
在html5的Canvas上绘制椭圆的几种方法总结
2013/01/07 HTML / CSS
Javascript 高级手势使用介绍
2013/04/21 HTML / CSS
英超联赛的首选足球:Mitre足球
2019/05/06 全球购物
abstract 可以和 virtual 一起使用吗?可以和 override 一起使用吗?
2012/10/15 面试题
生物化工专业个人自荐信
2013/09/26 职场文书
小学教师培训感言
2014/02/11 职场文书
植树节活动总结
2014/04/30 职场文书
群众路线领导班子整改方案
2014/10/25 职场文书
机械原理课程设计心得体会
2016/01/15 职场文书
vue中利用mqtt服务端实现即时通讯的步骤记录
2021/07/01 Vue.js
Linux磁盘管理方法介绍
2022/06/01 Servers