前言
记录论文学习过程中遇到的python问题
15.1 argparse
参考资料:python官方中文文档
argparse模块有益于编写用户友好的命令行界面。程序定义了其需要的参数,以及如何解析这些参数的方法。argparse模块会自动生成帮助信息与用法消息。
argparse的使用包括三个步骤,首先创建ArgumentParser
对象¶,之后给通add_argument()
方法¶给对象添加参数,最后通过parse_args()
方法将参数字符串转换为对象并将其设为命名空间的属性(对象实例化)。
15.1.1 argparse的使用过程
1. 创建 ArgumentParser() 对象
parser = argparse.ArgumentParser()
2. 调用 add_argument() 方法添加参数
parser.add_argument('--model_name', default='ian', type=str) # 调用 add_argument() 方法添加参数
# '--model_name' -一个命名
# default - 当参数未在命令行中出现并且也不存在于命名空间对象时所产生的值
# type - 命令行参数应当被转换成的类型
# help - 一个此选项作用的简单描述。
3. 解析参数(实例化对象)
opt = parser.parse_args()
15.1.2 实现过程
argparse的整个实现代码如下文所示
'''def myfunction():
a = " hello world "
print(a.strip())
print(a.lstrip())
print(a.rstrip())
b = "hello world"
a,b = b.strip("0")
print(b.strip("0"))
print(b.lstrip("h"))
print(b.rstrip("d"))
myfunction()'''
import argparse
### 1.创建 ArgumentParser() 对象
parser = argparse.ArgumentParser()
### 2.调用 add_argument() 方法添加参数
parser.add_argument('--model_name', default='ian', type=str) # 调用 add_argument() 方法添加参数
# '--model_name' -一个命名
# default - 当参数未在命令行中出现并且也不存在于命名空间对象时所产生的值
# type - 命令行参数应当被转换成的类型
# help - 一个此选项作用的简单描述。
parser.add_argument('--dataset', default='laptop', type=str, help='twitter, restaurant, laptop')
parser.add_argument('--optimizer', default='adam', type=str)
parser.add_argument('--initializer', default='xavier_uniform_', type=str) # 初始化
parser.add_argument('--lr', default=2e-5, type=float, help='try 5e-5, 2e-5 for BERT, 1e-3 for others')
parser.add_argument('--dropout', default=0.1, type=float)
parser.add_argument('--l2reg', default=0.01, type=float)
parser.add_argument('--num_epoch', default=10, type=int, help='try larger number for non-BERT models')
parser.add_argument('--batch_size', default=16, type=int, help='try 16, 32, 64 for BERT models')
parser.add_argument('--log_step', default=10, type=int) # ---------------------
parser.add_argument('--embed_dim', default=300, type=int)
parser.add_argument('--hidden_dim', default=300, type=int)
parser.add_argument('--max_seq_len', default=85, type=int) # 句中最大词汇数
parser.add_argument('--polarities_dim', default=3, type=int) #-------------
parser.add_argument('--hops', default=3, type=int) #-------------
parser.add_argument('--patience', default=5, type=int) #---------
parser.add_argument('--device', default=None, type=str, help='e.g. cuda:0')
parser.add_argument('--seed', default=1234, type=int, help='set seed for reproducibility') # 重复性呢误差
parser.add_argument('--valset_ratio', default=0, type=float, help='set ratio between 0 and 1 for validation support') #------------
### 3. 解析参数
opt = parser.parse_args()
print(opt.dataset)
print('<>'*10)
print(opt)
输出
laptop
<><><><><><><><><><>
Namespace(batch_size=16, dataset=‘laptop’, device=None, dropout=0.1, embed_dim=300, hidden_dim=300, hops=3, initializer=‘xavier_uniform_’, l2reg=0.01, log_step=10, lr=2e-05, max_seq_len=85, model_name=‘ian’, num_epoch=10, optimizer=‘adam’, patience=5, polarities_dim=3, seed=1234, valset_ratio=0)
15.2 assert
assert断言与if区别:
- 在使用 if 语句对表达式进行判断时,如果表达式为 True,程序执行一个逻辑,如果表达式为 False,可以执行另一个逻辑,或者终止程序。
使用 assert 对程序进行断言时,如果断言返回 False,那么程序则会引发 AssertionError 错误,程序终止执行。
Python assert断言详解
语法
assert condition
说明:assert 后面可以直接跟断言的条件,如果断言失败,则程序终止运行;如果断言成功,则程序正常运行。
代码如下:
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
import warnings
warnings.filterwarnings('ignore')
import ssl
ssl._create_default_https_context = ssl._create_unverified_context
输出:
2.读入数据
代码如下(示例):
data = pd.read_csv(
'https://labfile.oss.aliyuncs.com/courses/1283/adult.data.csv')
print(data.head())
该处使用的url网络请求的数据。
总结
提示:这里对文章进行总结:
例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。