日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python深入与提高_关于提高Python计算性能的说明摘要,深入,提升,python,笔记,小结,不,定时,更新...

發布時間:2025/3/19 python 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python深入与提高_关于提高Python计算性能的说明摘要,深入,提升,python,笔记,小结,不,定时,更新... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本筆記使用方大佬的降水計算指標,鏈接如下

降水各類常用指標csdn地址

向量化計算

使用np的向量化函數將一次只能返回單個標量的函數,向量化成能接受定制shape數組且可以指定類型的返回。

首先觀察函數如:

def HSS_one_threshold(obs, pre, threshold=0.1):

'''

HSS - Heidke skill score

Args:

obs (numpy.ndarray): observations

pre (numpy.ndarray): pre

threshold (float) : threshold for rainfall values binaryzation

(rain/no rain)

Returns:

float: HSS value

'''

hits, misses, falsealarms, correctnegatives = prep_clf(obs=obs, pre = pre,

threshold=threshold)

HSS_num = 2 * (hits * correctnegatives - misses * falsealarms)

HSS_den = (misses**2 + falsealarms**2 + 2*hits*correctnegatives +

(misses + falsealarms)*(hits + correctnegatives))

return HSS_num / HSS_den

這個HSS函數只能計算單個時次的,如果我想向量化計算不同時刻的hss評分,就只能使用for循環,但顯然這不是我的風格。而向量化函數很簡單只需要一句:

hss = np.vectorize(HSS_one_threshold,excluded=['threshold'],signature='(m,n),(m,n)->()')

np.vectorize這個函數很簡單,但定制自己的向量化函數核心卻是

signature=’(m,n),(m,n)->()’

,signatrue標簽,這個異常晦澀難懂且很少有人講清楚這個東西是干什么的,具體請參考文檔,我假設你詳細閱讀完文檔后還是不懂,那么接下來請看我的表演,首先signature中有兩個核心定義即numpy數組的迭代維和核心計算維,我們假設有一個三維數組(time,m,n)迭代維默認從數組最左邊的維開始,核心計算維從右邊開始,如果我想通過向量化的hss函數計算time個時間步的hss得分并返回到一個列表中,那么就如我給出的函數所示,計算維為(m,n)那么向量化后的函數接受的參數就是三維數組中的后兩維,然后在迭代維time上并行計算,因為numpy底層是用c計算,所以這個簽名相當于一個給c接口的參數。而

->()

表示計算返回的格式()代表標量當然這個還能根據任務自定義維度,甚至可以跳過中間某個維或者自定義廣播形式非常復雜,但普通需要for循環的計算均可以用signture消滅,非常暢快。比如計算某個場與另一個場的相關系數,如果分辨率很小據我觀察大多數python計算程序都是用for來遍歷這樣直接爆炸,但使用signuture自定義可以非常完美的解決這個問題。

利用多核進行多進程計算

顯然根據經驗io密集型使用多線程,計算密集使用多進程,我曾嘗試過多線程開文件套多進程計算但碰到很多問題,但針對本問題使用多進程即可,或者多進程開文件套多進程計算,這需要修改linux默認限制打開文件數。如果我想同時計算不同的如csi,pod的得分就可以使用如下程序:

dbz = ['10dbz','20dbz','30dbz','40dbz','50dbz']

thdlst = [10,20,30,40,50]

for thd_number,key in enumerate(dbz):

"""

多進程實現并行運算

"""

func_lst = [hss,csi,far,pod]

#進程級的字典

share_dict = multiprocessing.Manager().dict()

#進程級的鎖

share_lock = multiprocessing.Manager().Lock()

def multiprocess(func,thd):

func = func

print(func._name_)

#print(dir(func))

thd = thd

#全局變量

global unet,rover,tagan

temp_unet = func(unet[:,:,:480],unet[:,:,480:],threshold=thd)

temp_rover = func(rover[:,:,:480],rover[:,:,480:],threshold=thd)

temp_tagan = func(tagan[:,:,:480],tagan[:,:,480:],threshold=thd)

data30 = [temp_unet[4],temp_rover[4],temp_tagan[4]]

data60 = [temp_unet[9],temp_rover[9],temp_tagan[9]]

data30 = pd.Series(data30,['uent','rover','tagan'])

data60 = pd.Series(data60,['uent','rover','tagan'])

#使用當前函數名作為進程字典的key

key = func._name_

share_lock.acquire()

share_dict[key] = (data30,data60)

share_lock.release()

print('the process of %s is finisthed '%(key))

thd = thdlst[thd_number]

process_lst =[]

p = Pool(4)

for func in func_lst :

#p.apply_async(multiprocess, args=(multiprocess,thd))

process = multiprocessing.Process(target=multiprocess,args=(func,thd))

process_lst.append(process)

for pss in process_lst:

pss.start()

for pss in process_lst:

pss.join()

首先給一個進程級別的共享列表或者字典用來儲存所有返回的得分值,在計算過程中使用相同的數據不同的技巧評分所以將數據在函數中定義為全局變量,不同進程只訪問內存不修改,但在寫入字典的時候給一個鎖防止沖突。這樣如果計算指標在幾十個以上時數據量在工業的TB或者PB級時,就可以利用服務器的多核把cpu拉滿。

需要注意的是將函數向量化后新的對象就沒有了__name__屬性,需要在向量化函數時setattr一個name屬性

總結

以上是生活随笔為你收集整理的python深入与提高_关于提高Python计算性能的说明摘要,深入,提升,python,笔记,小结,不,定时,更新...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产青草视频 | 成人小视频在线观看 | 狠狠操2019 | 爱爱高潮视频 | 99精品一区二区三区无码吞精 | 少妇大叫太粗太大爽一区二区 | 日韩中文字幕免费观看 | 综合久久激情 | 成人激情自拍 | www视频在线| 亚洲综合激情五月久久 | 中文幕无线码中文字夫妻 | 韩国三色电费2024免费吗怎么看 | 欧美一级免费黄色片 | 91偷拍富婆spa盗摄在线 | 亚洲在线视频播放 | 做a爰小视频 | 天天艹夜夜艹 | 日本美女黄色 | 国产精品第9页 | 午夜诱惑痒痒网 | 国产一区二区三区四 | 人人妻人人玩人人澡人人爽 | 久久无码人妻一区二区三区 | 自拍中文字幕 | 日韩精品电影一区 | 成人激情开心网 | 可以免费看的黄色 | 天天躁日日躁aaaa视频 | 医生强烈淫药h调教小说视频 | 欧美a级在线免费观看 | 8x8x国产精品一区二区 | 日本色站| 少妇一级淫免费播放 | 日本一区高清 | 欧美日韩人妻一区二区 | 免费毛片网站在线观看 | 三年电影在线观看 | 欧美××××黑人××性爽 | www视频在线 | 日韩1页 | 91久久精品一区二区 | 日本少妇高潮喷水xxxxxxx | 久久一区二区三区四区五区 | 日韩黄色一级 | 国产激情a| 国产1区2区3区4区 | 亚洲视频一二三四 | 亚洲精品乱码久久久久久蜜桃麻豆 | 老头糟蹋新婚少妇系列小说 | av免费久久 | 国产一级片视频 | 欧美中文一区 | 黄色av大全 | 久久噜噜噜精品国产亚洲综合 | 永久精品视频 | 人人爽人人草 | 91av视频网| 亚洲性图一区二区 | 午夜色图 | 中日韩av在线 | 日韩福利视频在线观看 | 天堂资源地址在线 | 91九色中文 | av综合导航| 欧美精品在线第一页 | 香蕉网站在线观看 | 欧美日韩四区 | 啪啪av导航 | 毛片网 | 老熟妇一区二区三区啪啪 | 丰满少妇被猛烈进入高清播放 | 天干夜夜爽爽日日日日 | 国产精品香蕉在线 | 精品一区二区三区人妻 | 成年人爱爱视频 | av黄色一级片 | 天降女子在线 | 亚洲精品久久久久久动漫器材一区 | 青青操精品 | 二级黄色片| 女的高潮流时喷水图片大全 | 伊人久久大香线蕉综合网站 | 国产香蕉一区二区三区 | 狠狠躁日日躁夜夜躁2022麻豆 | 夏目彩春娇喘呻吟高潮迭起 | 成人中文字幕+乱码+中文字幕 | 精品黑人一区二区三区国语馆 | 永久免费快色 | 亚州av综合色区无码一区 | 中文文字幕文字幕高清 | 亚洲一区二区在线电影 | 中文字幕无码乱码人妻日韩精品 | 欧美色交 | 女同性恋一区二区三区 | 久久国色| 一女三黑人理论片在线 | 午夜影院免费观看 | 中文字幕一区二区三区精华液 |