我是靠谱客的博主 缓慢汽车,最近开发中收集的这篇文章主要介绍DL编程常用python命令合集1. 列 表lis t操 作2. 文 件相关的操作3. 字 符串str 操 作4. 其 他问题5. 注 意事项6. 一 些操作合集执行字符串表达式,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

1. 列表list操作

排序

2. 文件相关的操作

路径和文件名分离

文件复制

glob获取文件绝对路径

前缀后缀判断

3. 字符串str操作

分割切片

4. 其他问题

自定义的py文件import后找不到路径

5. 注意事项

文件命名

6. 一些操作合集

判断数据类型

集合set

利用bool矩阵进行索引

执行字符串表达式

filter()过滤序列

1. 列 表lis t操 作

排序

注意 :文件夹读取相关的最好都先排序,否则zip排序出BUG不好找

文件读取list往往为乱序的,为了将img和xml对应,可以对两个list都采用排序函数

如 img_files.sort(),然后再将两者zip后进行遍历。

list.sort( )(返回值为None, 可传递参数reverse=True逆序排序)
sorted( list )

2. 文 件相关的操作

路径和文件名分离

方法:

os.path.split( )
os.path.splitext( )

例子:

file_path = "D:/test/test.py"
(filepath,tempfilename) = os.path.split(file_path)
('D:/test', 'test.py')
(filename,extension) = os.path.splitext(tempfilename) ('test',
'.py')

文件复制

import shutil
shutil.copyfile('C: 1.txt' , 'D: 1.txt')

glo b 获 取文件绝对路径

files = sorted( glob.glob( os.path.join( path, ' *. ' ) ) )

'.'是匹配项,可替换为.jpg .txt等制定特定类型,,从而简单获取特定类型的文件绝

对路径。 参考链接 :https://www.jianshu.com/p/542e55b29324

前缀后缀判断

str.startswith( 'this' )
str.endswith('.jpg')

3. 字 符串str 操 作

分割切片

在str中去掉字符‘a’:

str.strip('a')

str以所有的 'a' 字符为界进行切割返回切片,注意'a'也没有了

str.split('a')

4. 其 他问题

自定义的py文 件im port后 找不 到路径

多半是 __init__.py 文件文件没写或者不对, 入口

5. 注 意事项

文件命名

py文件起名不要和pip package一样 ,不然运行的时候会报错,找都找不到(因为

import的时候会优先从本地import而不是pip)

6. 一 些操作合集

判断数据类型

isinstance(feature_maps,list)

集合se t

利用好set的操作可以简化程序,并且加速运算,如交并补差等,参加: set指令大全

但是注意: 集合中的元素不会有重复 !!

a=[ 1,1,2,3,4,5,5]
b=set (a)
b
{1, 2, 3, 4, 5}

利 用bool矩 阵进行索引

(1) i = ( pred [:, 4] > conf_thres ) & ( pred [:, 2:4] >
min_wh ). all (1) & torch .isfinite (pred ). all (1) pred =
pred [i]
(2) class_conf = class_conf [i]
(3)dc = pred [pred [:, -1] == c] # select class c

多说一句,pytorch的torch.where支持很多运算了,实在没有再用bool判断(因为这个可能导致梯度计算的矛盾)

执行字符串表达式

eval()和exec()

使用场景:

1.字符串计算式是无法别识别成我们常用的float型的,所以如配置文件等地读取出

来是个字符串,使用eval()可以直接将字符串进行计算得到结果。

2.需要在程序中调用执行命令

区别:可以看出,eval和exec相似度很高,都是执行字符串表达式,但是 eval() 是

一个函数,需要变量来接收函数的执行结果;而exec()的字符串内部变量和外界相

同,可以直接执行,返回None.

*号省略变量

单引号为多变量, ** 为多元素字典变量,例如:

for i, (*pbox, pconf, pcls_conf, pcls) in enumerate(pred)

特殊:多返回值的忽略

img, *_ = letterbox(img0, new_shape=self.img_size)

filt e r()过 滤序列

filter(function, iterable)

将可迭代对象传入这个函数,然后内部逐个将迭代器迭代到函数中,返回bool迭代

器。俩字好用,参考 教程(https://www.runoob.com/python3/python3-func-filter.html) 。给个例子:

 

def is_odd(n):
return n % 2 == 1
tmplist = filter(is_odd, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
newlist = list(tmplist)
print(newlist)

最后

以上就是缓慢汽车为你收集整理的DL编程常用python命令合集1. 列 表lis t操 作2. 文 件相关的操作3. 字 符串str 操 作4. 其 他问题5. 注 意事项6. 一 些操作合集执行字符串表达式的全部内容,希望文章能够帮你解决DL编程常用python命令合集1. 列 表lis t操 作2. 文 件相关的操作3. 字 符串str 操 作4. 其 他问题5. 注 意事项6. 一 些操作合集执行字符串表达式所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(42)

评论列表共有 0 条评论

立即
投稿
返回
顶部