当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python dask.bag.map用法及代码示例


用法:

dask.bag.map(func, *args, **kwargs)

在一个或多个袋子上按元素应用函数。

请注意,所有Bag 参数必须进行相同的分区。

参数

func可调用的
*args, **kwargs包、项目、延迟或对象

要传递给 func 的参数和关键字参数。非 Bag args/kwargs 在所有对 func 的调用中广播。

注意

对于具有多个Bag 参数的调用,对应的分区应该具有相同的长度;如果他们不这样做,调用将在计算时出错。

例子

>>> import dask.bag as db
>>> b = db.from_sequence(range(5), npartitions=2)
>>> b2 = db.from_sequence(range(5, 10), npartitions=2)

将函数应用于包中的所有元素:

>>> db.map(lambda x: x + 1, b).compute()
[1, 2, 3, 4, 5]

使用来自多个包的参数应用函数:

>>> from operator import add
>>> db.map(add, b, b2).compute()
[5, 7, 9, 11, 13]

非包参数在对映射函数的所有调用中广播:

>>> db.map(add, b, 1).compute()
[1, 2, 3, 4, 5]

还支持关键字参数,并且与常规参数具有相同的语义:

>>> def myadd(x, y=0):
...     return x + y
>>> db.map(myadd, b, y=b2).compute()
[5, 7, 9, 11, 13]
>>> db.map(myadd, b, y=1).compute()
[1, 2, 3, 4, 5]

参数和关键字参数也可以是 dask.bag.Itemdask.delayed.Delayed 的实例。在这里,我们将包中的最大值添加到每个元素:

>>> db.map(myadd, b, b.max()).compute()
[4, 5, 6, 7, 8]

相关用法


注:本文由纯净天空筛选整理自dask.org大神的英文原创作品 dask.bag.map。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。