Python 中具有多个参数的 pool map
本文将解释使用 Python 中的 multiprocessing
模块执行并行函数执行的不同方法。
multiprocessing
模块提供了使用多个输入执行并行函数执行并在不同进程之间分配输入数据的功能。
我们可以通过在 Python 中使用以下方法来并行执行具有不同输入值的函数。
使用 pool.map()
方法执行并行函数
pool.map(function, iterable)
方法返回一个迭代器,它将作为输入提供的 function
应用于输入 iterable
的每个项目。因此,如果我们想用不同的输入并行执行函数
,我们可以使用 pool.map()
方法。
下面的示例代码演示了如何使用 pool.map()
方法来并行化 Python 中的函数执行。
from multiprocessing import Pool
def myfunc(x):
return 5 + x
if __name__ == "__main__":
with Pool(3) as p:
print(p.map(myfunc, [1, 2, 3]))
输出:
[6, 7, 8]
如果输入 function
有多个参数,我们可以使用 pool.map()
方法和 partial()
函数并行执行该函数。
下面的示例演示了如何使用 Python 中的 pool.map()
使用多个参数并行执行函数。
from multiprocessing import Pool
from functools import partial
def multiply(x, y):
print(x * y)
if __name__ == "__main__":
with Pool(3) as p:
p.map(partial(multiply, 5), [1, 2, 3])
输出:
5
10
15
从上面的例子可以看出,这种方法的缺点是我们不能改变第一个参数的值。
使用 pool.starmap()
方法执行具有多个参数的并行函数
如果我们想用多个参数并行执行一个函数,我们可以使用 pool.starmap(function, iterable)
方法。
与 pool.map(function, iterable)
方法一样,pool.starmap(function, iterable)
方法返回一个迭代器,它将作为输入提供的 function
应用到 iterable
的每个项目。尽管如此,它还是希望每个输入项 iterable
被安排为输入 function
参数 iterables。
通过使用 pool.starmap()
方法,我们可以为 function
的所有参数提供不同的值,这与 pool.map()
方法不同。
我们可以通过以下方式使用 pool.starmap()
方法在 Python 中使用多个参数执行并行函数执行。
from multiprocessing import Pool
def print_name(name, lname):
print("full name =", name, lname)
if __name__ == "__main__":
with Pool(3) as p:
p.starmap(print_name, [("Thomas", "Scott"), ("Ali", "Khan")])
输出:
full name = Thomas Scott
full name = Ali Khan
相关文章
Pandas DataFrame DataFrame.shift() 函数
发布时间:2024/04/24 浏览次数:133 分类:Python
-
DataFrame.shift() 函数是将 DataFrame 的索引按指定的周期数进行移位。
Python pandas.pivot_table() 函数
发布时间:2024/04/24 浏览次数:82 分类:Python
-
Python Pandas pivot_table()函数通过对数据进行汇总,避免了数据的重复。
Pandas read_csv()函数
发布时间:2024/04/24 浏览次数:254 分类:Python
-
Pandas read_csv()函数将指定的逗号分隔值(csv)文件读取到 DataFrame 中。
Pandas 多列合并
发布时间:2024/04/24 浏览次数:628 分类:Python
-
本教程介绍了如何在 Pandas 中使用 DataFrame.merge()方法合并两个 DataFrames。
Pandas loc vs iloc
发布时间:2024/04/24 浏览次数:837 分类:Python
-
本教程介绍了如何使用 Python 中的 loc 和 iloc 从 Pandas DataFrame 中过滤数据。
在 Python 中将 Pandas 系列的日期时间转换为字符串
发布时间:2024/04/24 浏览次数:894 分类:Python
-
了解如何在 Python 中将 Pandas 系列日期时间转换为字符串