Python多進程共享numpy 數(shù)組的方法
為什么要用numpy
Python中提供了list容器,可以當(dāng)作數(shù)組使用。但列表中的元素可以是任何對象,因此列表中保存的是對象的指針,這樣一來,為了保存一個簡單的列表[1,2,3]。就需要三個指針和三個整數(shù)對象。對于數(shù)值運算來說,這種結(jié)構(gòu)顯然不夠高效。
Python雖然也提供了array模塊,但其只支持一維數(shù)組,不支持多維數(shù)組(在TensorFlow里面偏向于矩陣理解),也沒有各種運算函數(shù)。因而不適合數(shù)值運算。
NumPy的出現(xiàn)彌補了這些不足。
引用:https://zhuanlan.zhihu.com/p/32513483
共享 numpy 數(shù)組
需要用到 numpy 時往往是數(shù)據(jù)量較大的場景,如果直接復(fù)制會造成大量內(nèi)存浪費。共享 numpy 數(shù)組則是通過上面一節(jié)的 Array 實現(xiàn),再用 numpy.frombuffer 以及 reshape 對共享的內(nèi)存封裝成 numpy 數(shù)組,代碼如下:
# encoding:utf8 import ctypes import os import multiprocessing import numpy as np NUM_PROCESS = multiprocessing.cpu_count() def worker(index): main_nparray = np.frombuffer(shared_array_base, dtype=ctypes.c_double) main_nparray = main_nparray.reshape(NUM_PROCESS, 10) pid = os.getpid() main_nparray[index, :] = pid return pid if __name__ == "__main__": shared_array_base = multiprocessing.Array( ctypes.c_double, NUM_PROCESS * 10, lock=False) pool = multiprocessing.Pool(processes=NUM_PROCESS) result = pool.map(worker, range(NUM_PROCESS)) main_nparray = np.frombuffer(shared_array_base, dtype=ctypes.c_double) main_nparray = main_nparray.reshape(NUM_PROCESS, 10) print( main_nparray )
運行結(jié)果:
到此這篇關(guān)于Python多進程共享numpy 數(shù)組的方法的文章就介紹到這了,更多相關(guān)Python多進程共享numpy 數(shù)組內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python+Tkinter實現(xiàn)股票K線圖的繪制
K線圖又稱蠟燭圖,常用說法是“K線”。K線是以每個分析周期的開盤價、最高價、最低價和收盤價繪制而成。本文將利用Python+Tkinter實現(xiàn)股票K線圖的繪制,需要的可以參考一下2022-08-08python+excel接口自動化獲取token并作為請求參數(shù)進行傳參操作
這篇文章主要介紹了python+excel接口自動化獲取token并作為請求參數(shù)進行傳參操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-11-11keras中模型訓(xùn)練class_weight,sample_weight區(qū)別說明
這篇文章主要介紹了keras中模型訓(xùn)練class_weight,sample_weight區(qū)別說明,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-05-05通過Python實現(xiàn)Payload分離免殺過程詳解
這篇文章主要介紹了通過Python實現(xiàn)Payload分離免殺過程詳解,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-07-07python 提取tuple類型值中json格式的key值方法
今天小編就為大家分享一篇python 提取tuple類型值中json格式的key值方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-12-12Python內(nèi)建函數(shù)Built_in Funtions用法示例詳解
這篇文章主要為大家介紹了Python內(nèi)建函數(shù)Built_in Funtions用法示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-08-08