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中的choice()方法使用详解
May 15 Python
Python的Flask框架标配模板引擎Jinja2的使用教程
Jul 12 Python
Python实现 多进程导入CSV数据到 MySQL
Feb 26 Python
python3利用venv配置虚拟环境及过程中的小问题小结
Aug 01 Python
用Python实现校园通知更新提醒功能
Nov 23 Python
python实现名片管理器的示例代码
Dec 17 Python
Python Pickle 实现在同一个文件中序列化多个对象
Dec 30 Python
python正则表达式实例代码
Mar 03 Python
Django框架models使用group by详解
Mar 11 Python
Python unittest装饰器实现原理及代码
Sep 08 Python
Python 实现集合Set的示例
Dec 21 Python
python编写五子棋游戏
May 25 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
为什么那些咖啡爱好者大多看不上连锁咖啡店?
2021/03/06 咖啡文化
模拟xcopy的函数
2006/10/09 PHP
php adodb操作mysql数据库
2009/03/19 PHP
php Smarty初体验二 获取配置信息
2011/08/08 PHP
destoon实现调用热门关键字的方法
2014/07/15 PHP
一个经典的PHP验证码类分享
2014/11/18 PHP
thinkphp3.2.3版本的数据库增删改查实现代码
2016/09/22 PHP
php 提交表单 关闭layer弹窗iframe的实例讲解
2018/08/20 PHP
PHP面向对象程序设计模拟一般面向对象语言中的方法重载(overload)示例
2019/06/13 PHP
JavaScript 类似flash效果的立体图片浏览器
2010/02/08 Javascript
js点击选择文本的方法
2015/02/09 Javascript
JavaScript实现点击自动选择TextArea文本的方法
2015/07/02 Javascript
SpringMVC restful 注解之@RequestBody进行json与object转换
2015/12/10 Javascript
jQuery Chart图表制作组件Highcharts用法详解
2016/06/01 Javascript
什么是JavaScript注入攻击?
2016/09/14 Javascript
基于vue实现分页/翻页组件paginator示例
2017/03/09 Javascript
分享十三个最佳JavaScript数据网格库
2017/04/07 Javascript
快速理解 JavaScript 中的 LHS 和 RHS 查询的用法
2017/08/24 Javascript
vue.js动画中的js钩子函数的实现
2018/07/06 Javascript
微信小程序利用for循环解决内容变更问题
2020/03/05 Javascript
vue中keep-alive内置组件缓存的实例代码
2020/04/16 Javascript
[02:40]DOTA2英雄基础教程 巨牙海民
2013/12/23 DOTA
Python中的装饰器用法详解
2015/01/14 Python
Python urllib、urllib2、httplib抓取网页代码实例
2015/05/09 Python
python在Windows下安装setuptools(easy_install工具)步骤详解
2016/07/01 Python
双向RNN:bidirectional_dynamic_rnn()函数的使用详解
2020/01/20 Python
python 中的9个实用技巧,助你提高开发效率
2020/08/30 Python
详解pandas apply 并行处理的几种方法
2021/02/24 Python
介绍一下Java的安全机制
2012/06/28 面试题
介绍一下linux的文件系统
2012/03/20 面试题
举例说明类变量和实例变量的区别
2016/06/30 面试题
大二自我鉴定范文
2013/10/05 职场文书
培训专员岗位职责
2014/02/26 职场文书
C++程序员求职信
2014/05/07 职场文书
爱心捐款活动总结
2015/05/09 职场文书
搞笑婚礼主持词开场白
2015/11/24 职场文书