MCPcopy
hub / github.com/dask/dask / map_reduce

Method map_reduce

dask/array/numpy_compat.py:83–131  ·  view source on GitHub ↗

Iterate over the nested list, applying: * ``f_map`` (T -> U) to items * ``f_reduce`` (Iterable[U] -> U) to mapped items For instance, ``map_reduce([[1, 2], 3, 4])`` is:: f_reduce([ f_reduce([ f_map(1), f_map

(
        self,
        x,
        f_map=lambda x, **kwargs: x,
        f_reduce=lambda x, **kwargs: x,
        f_kwargs=lambda **kwargs: kwargs,
        **kwargs,
    )

Source from the content-addressed store, hash-verified

81 self.recurse_if = recurse_if
82
83 def map_reduce(
84 self,
85 x,
86 f_map=lambda x, **kwargs: x,
87 f_reduce=lambda x, **kwargs: x,
88 f_kwargs=lambda **kwargs: kwargs,
89 **kwargs,
90 ):
91 """
92 Iterate over the nested list, applying:
93 * ``f_map`` (T -> U) to items
94 * ``f_reduce`` (Iterable[U] -> U) to mapped items
95
96 For instance, ``map_reduce([[1, 2], 3, 4])`` is::
97
98 f_reduce([
99 f_reduce([
100 f_map(1),
101 f_map(2)
102 ]),
103 f_map(3),
104 f_map(4)
105 ]])
106
107
108 State can be passed down through the calls with `f_kwargs`,
109 to iterables of mapped items. When kwargs are passed, as in
110 ``map_reduce([[1, 2], 3, 4], **kw)``, this becomes::
111
112 kw1 = f_kwargs(**kw)
113 kw2 = f_kwargs(**kw1)
114 f_reduce([
115 f_reduce([
116 f_map(1), **kw2)
117 f_map(2, **kw2)
118 ], **kw1),
119 f_map(3, **kw1),
120 f_map(4, **kw1)
121 ]], **kw)
122 """
123
124 def f(x, **kwargs):
125 if not self.recurse_if(x):
126 return f_map(x, **kwargs)
127 else:
128 next_kwargs = f_kwargs(**kwargs)
129 return f_reduce((f(xi, **next_kwargs) for xi in x), **kwargs)
130
131 return f(x, **kwargs)
132
133 def walk(self, x, index=()):
134 """

Callers 1

blockFunction · 0.80

Calls 1

fFunction · 0.50

Tested by

no test coverage detected