学习过程中不断更新。
1. 断点调试
python有3种调试方式.
第一种是ide中内置的。比如pycharm等开发工具,鼠标左击代码编辑器的行数位置,开发工具会在该行代码处设置调试断点,调试程序时会在此中断。
第二种是代码方式,即在脚本中添加执行断点,程序执行到此处后触发断点中断。
import pdb
pdb.set_trace()
第三种是命令行方式。在命令行中执行python脚本,添加调试参数,会导致该脚本在执行的入口处断住,等待调试进行:
python -m pdb python.py
个人感觉,python pdb命令和linux上gcc的pdb命令参数很相似。
断点发生后,常用的断点命令如下:
b 查看所有断点
b 行号 添加断点
p 打印变量,或者直接写变量的名字,python语句在pdb命令行是可以直接使用的
c:(continue)继续执行
w:(words)显示当前行的上下文信息
a:(arguments)打印当前函数的参数列表
s:(stop)执行当前行,并在第一个可能的时机停止
n:(next)继续执行直到当前函数的下一行或者函数返回值
当然还有很多其他参数,具体可参考官网说明。
2. 退出脚本
sys.exit()
3. 多维数组操作
此处参考:https://blog.csdn.net/qq_44444503/article/details/124188526?spm=1001.2101.3001.6661.1&utm_medium=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1-124188526-blog-89241990.235%5Ev38%5Epc_relevant_anti_vip_base&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1-124188526-blog-89241990.235%5Ev38%5Epc_relevant_anti_vip_base&utm_relevant_index=1
以及:
https://blog.csdn.net/Together_CZ/article/details/79593952?utm_medium=distribute.pc_relevant.none-task-blog-2defaultbaidujs_baidulandingword~default-1-79593952-blog-124188526.235v38pc_relevant_anti_vip_base&spm=1001.2101.3001.4242.2&utm_relevant_index=4
X[:,0] 取二维数组中第一维的所有数据
X[:,1] 取二维数组中第二维的所有数据
X[:,m:n] 取二维数组中第m维到第n-1维的所有数据
X[:,:,0] 取三维矩阵中第一维的所有数据
X[:,:,1] 取三维矩阵中第二维的所有数据
X[:,:,m:n] 取三维矩阵中第m维到第n-1维的所有数据
4. python切片操作
例子:train_features, test_features = features[:train_num,:], features[train_num:,:]
其中,逗号前面表示样本数(行),后面表示特征列数
5. where用法
np.where有两种用法
(1)np.where(condition,x,y)
当where有三个参数时,第一个参数表示条件,当条件成立时where方法返回x,当条件不成立时返回y
(2)np.where(condition)
当where只有一个参数时,参数表示条件,当条件成立时,where返回的是每个符合condition条件的元素的坐标,返回元组的形式
代码示例:
#用法一
#当self.net_input(X)返回的值大于等于0.0时,where返回1,否则返回0
np.where(self.net_input(X) >= 0.0, 1, 0)
#用法二
a = np.array([2,4,6,8,10])
#只有一个参数表示条件的时候
np.where(a > 5)
#输出:
array([ 6, 8, 10])