|
12 | 12 | </script>
|
13 | 13 |
|
14 | 14 | <meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
15 |
| - <title>dpnp.dpnp_iface_histograms — Data Parallel Extension for NumPy 0.15.0dev1+80.g9021941263 documentation</title> |
| 15 | + <title>dpnp.dpnp_iface_histograms — Data Parallel Extension for NumPy 0.15.0dev1+82.g41bd6586fe documentation</title> |
16 | 16 | <link rel="stylesheet" type="text/css" href="../../_static/pygments.css?v=fa44fd50" />
|
17 | 17 | <link rel="stylesheet" type="text/css" href="../../_static/css/theme.css?v=19f00094" />
|
18 | 18 |
|
|
23 | 23 |
|
24 | 24 | <script src="../../_static/jquery.js?v=5d32c60e"></script>
|
25 | 25 | <script src="../../_static/_sphinx_javascript_frameworks_compat.js?v=2cd50e6c"></script>
|
26 |
| - <script src="../../_static/documentation_options.js?v=423ac6ba"></script> |
| 26 | + <script src="../../_static/documentation_options.js?v=07436bc7"></script> |
27 | 27 | <script src="../../_static/doctools.js?v=9a2dae69"></script>
|
28 | 28 | <script src="../../_static/sphinx_highlight.js?v=dc90522c"></script>
|
29 | 29 | <script src="../../_static/js/theme.js"></script>
|
|
43 | 43 | Data Parallel Extension for NumPy
|
44 | 44 | </a>
|
45 | 45 | <div class="version">
|
46 |
| - 0.15.0dev1+80.g9021941263 |
| 46 | + 0.15.0dev1+82.g41bd6586fe |
47 | 47 | </div>
|
48 | 48 | <div role="search">
|
49 | 49 | <form id="rtd-search-form" class="wy-form" action="../../search.html" method="get">
|
@@ -136,6 +136,7 @@ <h1>Source code for dpnp.dpnp_iface_histograms</h1><div class="highlight"><pre>
|
136 | 136 | <span class="kn">import</span> <span class="nn">dpnp</span>
|
137 | 137 |
|
138 | 138 | <span class="n">__all__</span> <span class="o">=</span> <span class="p">[</span>
|
| 139 | + <span class="s2">"digitize"</span><span class="p">,</span> |
139 | 140 | <span class="s2">"histogram"</span><span class="p">,</span>
|
140 | 141 | <span class="s2">"histogram_bin_edges"</span><span class="p">,</span>
|
141 | 142 | <span class="p">]</span>
|
@@ -298,6 +299,101 @@ <h1>Source code for dpnp.dpnp_iface_histograms</h1><div class="highlight"><pre>
|
298 | 299 | <span class="p">)</span>
|
299 | 300 |
|
300 | 301 |
|
| 302 | +<div class="viewcode-block" id="digitize"> |
| 303 | +<a class="viewcode-back" href="../../reference/generated/dpnp.digitize.html#dpnp.digitize">[docs]</a> |
| 304 | +<span class="k">def</span> <span class="nf">digitize</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="n">bins</span><span class="p">,</span> <span class="n">right</span><span class="o">=</span><span class="kc">False</span><span class="p">):</span> |
| 305 | +<span class="w"> </span><span class="sd">"""</span> |
| 306 | +<span class="sd"> Return the indices of the bins to which each value in input array belongs.</span> |
| 307 | + |
| 308 | +<span class="sd"> For full documentation refer to :obj:`numpy.digitize`.</span> |
| 309 | + |
| 310 | +<span class="sd"> Parameters</span> |
| 311 | +<span class="sd"> ----------</span> |
| 312 | +<span class="sd"> a : {dpnp.ndarray, usm_ndarray}</span> |
| 313 | +<span class="sd"> Input array to be binned.</span> |
| 314 | +<span class="sd"> bins : {dpnp.ndarray, usm_ndarray}</span> |
| 315 | +<span class="sd"> Array of bins. It has to be 1-dimensional and monotonic</span> |
| 316 | +<span class="sd"> increasing or decreasing.</span> |
| 317 | +<span class="sd"> right : bool, optional</span> |
| 318 | +<span class="sd"> Indicates whether the intervals include the right or the left bin edge.</span> |
| 319 | +<span class="sd"> Default: ``False``.</span> |
| 320 | + |
| 321 | +<span class="sd"> Returns</span> |
| 322 | +<span class="sd"> -------</span> |
| 323 | +<span class="sd"> indices : dpnp.ndarray</span> |
| 324 | +<span class="sd"> Array of indices with the same shape as `x`.</span> |
| 325 | + |
| 326 | +<span class="sd"> Notes</span> |
| 327 | +<span class="sd"> -----</span> |
| 328 | +<span class="sd"> This will not raise an exception when the input array is</span> |
| 329 | +<span class="sd"> not monotonic.</span> |
| 330 | + |
| 331 | +<span class="sd"> See Also</span> |
| 332 | +<span class="sd"> --------</span> |
| 333 | +<span class="sd"> :obj:`dpnp.bincount` : Count number of occurrences of each value in array</span> |
| 334 | +<span class="sd"> of non-negative integers.</span> |
| 335 | +<span class="sd"> :obj:`dpnp.histogram` : Compute the histogram of a data set.</span> |
| 336 | +<span class="sd"> :obj:`dpnp.unique` : Find the unique elements of an array.</span> |
| 337 | +<span class="sd"> :obj:`dpnp.searchsorted` : Find indices where elements should be inserted</span> |
| 338 | +<span class="sd"> to maintain order.</span> |
| 339 | + |
| 340 | +<span class="sd"> Examples</span> |
| 341 | +<span class="sd"> --------</span> |
| 342 | +<span class="sd"> >>> import dpnp as np</span> |
| 343 | +<span class="sd"> >>> x = np.array([0.2, 6.4, 3.0, 1.6])</span> |
| 344 | +<span class="sd"> >>> bins = np.array([0.0, 1.0, 2.5, 4.0, 10.0])</span> |
| 345 | +<span class="sd"> >>> inds = np.digitize(x, bins)</span> |
| 346 | +<span class="sd"> >>> inds</span> |
| 347 | +<span class="sd"> array([1, 4, 3, 2])</span> |
| 348 | +<span class="sd"> >>> for n in range(x.size):</span> |
| 349 | +<span class="sd"> ... print(bins[inds[n]-1], "<=", x[n], "<", bins[inds[n]])</span> |
| 350 | +<span class="sd"> ...</span> |
| 351 | +<span class="sd"> 0. <= 0.2 < 1.</span> |
| 352 | +<span class="sd"> 4. <= 6.4 < 10.</span> |
| 353 | +<span class="sd"> 2.5 <= 3. < 4.</span> |
| 354 | +<span class="sd"> 1. <= 1.6 < 2.5</span> |
| 355 | + |
| 356 | +<span class="sd"> >>> x = np.array([1.2, 10.0, 12.4, 15.5, 20.])</span> |
| 357 | +<span class="sd"> >>> bins = np.array([0, 5, 10, 15, 20])</span> |
| 358 | +<span class="sd"> >>> np.digitize(x, bins, right=True)</span> |
| 359 | +<span class="sd"> array([1, 2, 3, 4, 4])</span> |
| 360 | +<span class="sd"> >>> np.digitize(x, bins, right=False)</span> |
| 361 | +<span class="sd"> array([1, 3, 3, 4, 5])</span> |
| 362 | + |
| 363 | +<span class="sd"> """</span> |
| 364 | + |
| 365 | + <span class="n">dpnp</span><span class="o">.</span><span class="n">check_supported_arrays_type</span><span class="p">(</span><span class="n">x</span><span class="p">,</span> <span class="n">bins</span><span class="p">)</span> |
| 366 | + |
| 367 | + <span class="k">if</span> <span class="n">dpnp</span><span class="o">.</span><span class="n">issubdtype</span><span class="p">(</span><span class="n">x</span><span class="o">.</span><span class="n">dtype</span><span class="p">,</span> <span class="n">dpnp</span><span class="o">.</span><span class="n">complexfloating</span><span class="p">):</span> |
| 368 | + <span class="k">raise</span> <span class="ne">TypeError</span><span class="p">(</span><span class="s2">"x may not be complex"</span><span class="p">)</span> |
| 369 | + |
| 370 | + <span class="k">if</span> <span class="n">bins</span><span class="o">.</span><span class="n">ndim</span> <span class="o">></span> <span class="mi">1</span><span class="p">:</span> |
| 371 | + <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="s2">"object too deep for desired array"</span><span class="p">)</span> |
| 372 | + <span class="k">if</span> <span class="n">bins</span><span class="o">.</span><span class="n">ndim</span> <span class="o"><</span> <span class="mi">1</span><span class="p">:</span> |
| 373 | + <span class="k">raise</span> <span class="ne">ValueError</span><span class="p">(</span><span class="s2">"object of too small depth for desired array"</span><span class="p">)</span> |
| 374 | + |
| 375 | + <span class="c1"># This is backwards because the arguments below are swapped</span> |
| 376 | + <span class="n">side</span> <span class="o">=</span> <span class="s2">"left"</span> <span class="k">if</span> <span class="n">right</span> <span class="k">else</span> <span class="s2">"right"</span> |
| 377 | + |
| 378 | + <span class="c1"># Check if bins are monotonically increasing.</span> |
| 379 | + <span class="c1"># If bins is empty, the array is considered to be increasing.</span> |
| 380 | + <span class="c1"># If all bins are NaN, the array is considered to be decreasing.</span> |
| 381 | + <span class="k">if</span> <span class="n">bins</span><span class="o">.</span><span class="n">size</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span> |
| 382 | + <span class="n">bins_increasing</span> <span class="o">=</span> <span class="kc">True</span> |
| 383 | + <span class="k">else</span><span class="p">:</span> |
| 384 | + <span class="n">bins_increasing</span> <span class="o">=</span> <span class="n">bins</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o"><=</span> <span class="n">bins</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span> <span class="ow">or</span> <span class="p">(</span> |
| 385 | + <span class="ow">not</span> <span class="n">dpnp</span><span class="o">.</span><span class="n">isnan</span><span class="p">(</span><span class="n">bins</span><span class="p">[</span><span class="mi">0</span><span class="p">])</span> <span class="ow">and</span> <span class="n">dpnp</span><span class="o">.</span><span class="n">isnan</span><span class="p">(</span><span class="n">bins</span><span class="p">[</span><span class="o">-</span><span class="mi">1</span><span class="p">])</span> |
| 386 | + <span class="p">)</span> |
| 387 | + |
| 388 | + <span class="k">if</span> <span class="n">bins_increasing</span><span class="p">:</span> |
| 389 | + <span class="c1"># Use dpnp.searchsorted directly if bins are increasing</span> |
| 390 | + <span class="k">return</span> <span class="n">dpnp</span><span class="o">.</span><span class="n">searchsorted</span><span class="p">(</span><span class="n">bins</span><span class="p">,</span> <span class="n">x</span><span class="p">,</span> <span class="n">side</span><span class="o">=</span><span class="n">side</span><span class="p">)</span> |
| 391 | + |
| 392 | + <span class="c1"># Reverse bins and adjust indices if bins are decreasing</span> |
| 393 | + <span class="k">return</span> <span class="n">bins</span><span class="o">.</span><span class="n">size</span> <span class="o">-</span> <span class="n">dpnp</span><span class="o">.</span><span class="n">searchsorted</span><span class="p">(</span><span class="n">bins</span><span class="p">[::</span><span class="o">-</span><span class="mi">1</span><span class="p">],</span> <span class="n">x</span><span class="p">,</span> <span class="n">side</span><span class="o">=</span><span class="n">side</span><span class="p">)</span></div> |
| 394 | + |
| 395 | + |
| 396 | + |
301 | 397 | <div class="viewcode-block" id="histogram">
|
302 | 398 | <a class="viewcode-back" href="../../reference/generated/dpnp.histogram.html#dpnp.histogram">[docs]</a>
|
303 | 399 | <span class="k">def</span> <span class="nf">histogram</span><span class="p">(</span><span class="n">a</span><span class="p">,</span> <span class="n">bins</span><span class="o">=</span><span class="mi">10</span><span class="p">,</span> <span class="nb">range</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">density</span><span class="o">=</span><span class="kc">None</span><span class="p">,</span> <span class="n">weights</span><span class="o">=</span><span class="kc">None</span><span class="p">):</span>
|
@@ -427,8 +523,8 @@ <h1>Source code for dpnp.dpnp_iface_histograms</h1><div class="highlight"><pre>
|
427 | 523 | <span class="n">n</span> <span class="o">=</span> <span class="n">dpnp</span><span class="o">.</span><span class="n">diff</span><span class="p">(</span><span class="n">cum_n</span><span class="p">)</span>
|
428 | 524 |
|
429 | 525 | <span class="k">if</span> <span class="n">density</span><span class="p">:</span>
|
430 |
| - <span class="n">db</span> <span class="o">=</span> <span class="n">dpnp</span><span class="o">.</span><span class="n">diff</span><span class="p">(</span><span class="n">bin_edges</span><span class="p">)</span><span class="o">.</span><span class="n">astype</span><span class="p">(</span><span class="n">dpnp</span><span class="o">.</span><span class="n">default_float_type</span><span class="p">())</span> |
431 | 526 | <span class="c1"># pylint: disable=possibly-used-before-assignment</span>
|
| 527 | + <span class="n">db</span> <span class="o">=</span> <span class="n">dpnp</span><span class="o">.</span><span class="n">diff</span><span class="p">(</span><span class="n">bin_edges</span><span class="p">)</span><span class="o">.</span><span class="n">astype</span><span class="p">(</span><span class="n">dpnp</span><span class="o">.</span><span class="n">default_float_type</span><span class="p">())</span> |
432 | 528 | <span class="k">return</span> <span class="n">n</span> <span class="o">/</span> <span class="n">db</span> <span class="o">/</span> <span class="n">n</span><span class="o">.</span><span class="n">sum</span><span class="p">(),</span> <span class="n">bin_edges</span>
|
433 | 529 |
|
434 | 530 | <span class="k">return</span> <span class="n">n</span><span class="p">,</span> <span class="n">bin_edges</span></div>
|
|
0 commit comments