| 126 | |
| 127 | @derived_from(np.random.Generator, skipblocks=1) |
| 128 | def choice( |
| 129 | self, |
| 130 | a, |
| 131 | size=None, |
| 132 | replace=True, |
| 133 | p=None, |
| 134 | axis=0, |
| 135 | shuffle=True, |
| 136 | chunks="auto", |
| 137 | ): |
| 138 | ( |
| 139 | a, |
| 140 | size, |
| 141 | replace, |
| 142 | p, |
| 143 | axis, |
| 144 | chunks, |
| 145 | meta, |
| 146 | dependencies, |
| 147 | ) = _choice_validate_params(self, a, size, replace, p, axis, chunks) |
| 148 | |
| 149 | sizes = list(product(*chunks)) |
| 150 | bitgens = _spawn_bitgens(self._bit_generator, len(sizes)) |
| 151 | |
| 152 | name = "da.random.choice-%s" % tokenize( |
| 153 | bitgens, size, chunks, a, replace, p, axis, shuffle |
| 154 | ) |
| 155 | keys = product([name], *(range(len(bd)) for bd in chunks)) |
| 156 | dsk = { |
| 157 | k: Task(k, _choice_rng, bitgen, a, size, replace, p, axis, shuffle) |
| 158 | for k, bitgen, size in zip(keys, bitgens, sizes) |
| 159 | } |
| 160 | |
| 161 | graph = HighLevelGraph.from_collections(name, dsk, dependencies=dependencies) |
| 162 | return Array(graph, name, chunks, meta=meta) |
| 163 | |
| 164 | @derived_from(np.random.Generator, skipblocks=1) |
| 165 | def exponential(self, scale=1.0, size=None, chunks="auto", **kwargs): |