DL編程常用python命令合集

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)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章