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读取html中指定元素生成excle文件示例
Apr 03 Python
python在windows命令行下输出彩色文字的方法
Mar 19 Python
用Python的pandas框架操作Excel文件中的数据教程
Mar 31 Python
python文件操作之目录遍历实例分析
May 20 Python
在Python 3中实现类型检查器的简单方法
Jul 03 Python
python实现汉诺塔算法
Mar 01 Python
用Python编写一个高效的端口扫描器的方法
Dec 20 Python
python实现飞机大战游戏
Oct 26 Python
Django框架模板语言实例小结【变量,标签,过滤器,继承,html转义】
May 23 Python
如何在Cloud Studio上执行Python代码?
Aug 09 Python
编写python程序的90条建议
Apr 14 Python
分享几种python 变量合并方法
Mar 20 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
使用VisualStudio开发php的图文设置方法
2010/08/21 PHP
Eclipse的PHP插件PHPEclipse安装和使用
2014/07/20 PHP
phpQuery让php处理html代码像jQuery一样方便
2015/01/06 PHP
php中实现获取随机数组列表的自定义函数
2015/04/02 PHP
PHP实现搜索相似图片
2015/09/22 PHP
PHP入门教程之面向对象的特性分析(继承,多态,接口,抽象类,抽象方法等)
2016/09/11 PHP
PHP实现用户异地登录提醒功能的方法【基于thinkPHP框架】
2018/03/15 PHP
jquery不会自动回收xmlHttpRequest对象 导致了内存溢出
2012/06/18 Javascript
javascript中取前n天日期的两种方法分享
2014/01/26 Javascript
iframe子页面与父页面在同域或不同域下的js通信
2014/05/07 Javascript
使用JS画图之点、线、面
2015/01/12 Javascript
JavaScript中constructor()方法的使用简介
2015/06/05 Javascript
基于JS实现省市联动效果代码分享
2016/06/06 Javascript
浅谈React的最大亮点之虚拟DOM
2018/05/29 Javascript
微信小程序input框中加入小图标的实现方法
2018/06/19 Javascript
浅析vue.js数组的变异方法
2018/06/30 Javascript
layer.open 子页面弹出层向父页面传输数据的例子
2019/09/26 Javascript
[36:33]2018DOTA2亚洲邀请赛 4.3 突围赛 EG vs Newbee 第二场
2018/04/04 DOTA
Python中声明只包含一个元素的元组数据方法
2014/08/25 Python
用Python的Tornado框架结合memcached页面改善博客性能
2015/04/24 Python
使用Python的判断语句模拟三目运算
2015/04/24 Python
Python命令启动Web服务器实例详解
2017/02/23 Python
Python正则简单实例分析
2017/03/21 Python
django使用xlwt导出excel文件实例代码
2018/02/06 Python
对python requests发送json格式数据的实例详解
2018/12/19 Python
python3 tkinter实现点击一个按钮跳出另一个窗口的方法
2019/06/13 Python
对pytorch中x = x.view(x.size(0), -1) 的理解说明
2021/03/03 Python
h5移动端调用支付宝、微信支付的实现
2020/06/08 HTML / CSS
英语专业学子个人的自我评价
2013/10/02 职场文书
会计职业生涯规划范文
2014/01/04 职场文书
销售员岗位职责范本
2014/02/03 职场文书
国窖1573广告词
2014/03/21 职场文书
实践单位评语
2014/04/26 职场文书
学习保证书100字
2015/02/26 职场文书
生日祝酒词大全
2015/08/10 职场文书
《鲸》教学反思
2016/02/23 职场文书