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完全新手教程
Feb 08 Python
17个Python小技巧分享
Jan 23 Python
Python随机生成彩票号码的方法
Mar 05 Python
深入Python函数编程的一些特性
Apr 13 Python
Win7下搭建python开发环境图文教程(安装Python、pip、解释器)
May 17 Python
python通过cookie模拟已登录状态的初步研究
Nov 09 Python
对python实现二维函数高次拟合的示例详解
Dec 29 Python
Python中常用的内置方法
Jan 28 Python
Python标准库使用OrderedDict类的实例讲解
Feb 14 Python
python判断变量是否为int、字符串、列表、元组、字典的方法详解
Feb 13 Python
Python中用pyinstaller打包时的图标问题及解决方法
Feb 17 Python
python变量的作用域是什么
May 26 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
收集的PHP中与数组相关的函数
2007/03/22 PHP
生成php程序的php代码
2008/04/07 PHP
php curl 伪造IP来源的实例代码
2012/11/01 PHP
PHP两种去掉数组重复值的方法比较
2014/06/19 PHP
PHP实现json_decode不转义中文的方法
2017/05/20 PHP
Yii2框架加载css和js文件的方法分析
2019/05/25 PHP
MooTools 1.2介绍
2009/09/14 Javascript
Uglifyjs(JS代码优化工具)入门 安装使用
2020/04/13 Javascript
你必须知道的Javascript知识点之&quot;深入理解作用域链&quot;的介绍
2013/04/23 Javascript
jquery获取选中的文本和值的方法
2014/07/08 Javascript
javascript中innerText和innerHTML属性用法实例分析
2015/05/13 Javascript
js+css实现回到顶部按钮(back to top)
2016/03/02 Javascript
20分钟成功编写bootstrap响应式页面 就这么简单
2016/05/12 Javascript
vue2 设置router-view默认路径的实例
2018/09/20 Javascript
vue中前进刷新、后退缓存用户浏览数据和浏览位置的实例讲解
2018/09/21 Javascript
uni-app之APP和小程序微信授权方法
2019/05/09 Javascript
vue轻量级框架无法获取到vue对象解决方法
2019/05/12 Javascript
React Native 混合开发多入口加载方式详解
2019/09/23 Javascript
[01:50]2014DOTA2西雅图邀请赛 专访欢乐周宝龙
2014/07/08 DOTA
Python编码时应该注意的几个情况
2013/03/04 Python
在Python的Django框架中实现Hacker News的一些功能
2015/04/17 Python
python爬虫爬取某站上海租房图片
2018/02/04 Python
python 并发编程 多路复用IO模型详解
2019/08/20 Python
解决pyPdf和pyPdf2在合并pdf时出现异常的问题
2020/04/03 Python
Python3.7将普通图片(png)转换为SVG图片格式(网站logo图标)动起来
2020/04/21 Python
Python使用Pyqt5实现简易浏览器(最新版本测试过)
2020/04/27 Python
利用CSS3实现开门效果实例源码
2016/08/22 HTML / CSS
htnl5利用svg页面高斯模糊的方法
2018/07/20 HTML / CSS
Timberland美国官网:全球领先的户外品牌
2016/08/15 全球购物
Book Depository澳大利亚:世界领先的专业在线书店之一
2018/12/27 全球购物
企业面试题试卷附带答案
2015/12/20 面试题
入职担保书怎么写
2014/05/12 职场文书
预防煤气中毒方案
2014/06/16 职场文书
社团活动总结报告
2014/06/27 职场文书
Python用any()函数检查字符串中的字母以及如何使用all()函数
2022/04/14 Python
zabbix配置nginx监控的实现
2022/05/25 Servers