<spanclass="name">Z</span><spanclass="operator">=</span><spanclass="name">np</span><spanclass="operator">.</span><spanclass="name">zeros</span><spanclass="punctuation">(</span><spanclass="literal number integer">10</span><spanclass="punctuation">)</span>
<li><pclass="first">How to find the memory size of any array (★☆☆)</p>
<preclass="code python literal-block">
<spanclass="name">Z</span><spanclass="operator">=</span><spanclass="name">np</span><spanclass="operator">.</span><spanclass="name">zeros</span><spanclass="punctuation">((</span><spanclass="literal number integer">10</span><spanclass="punctuation">,</span><spanclass="literal number integer">10</span><spanclass="punctuation">))</span>
<spanclass="name">Z</span><spanclass="operator">=</span><spanclass="name">np</span><spanclass="operator">.</span><spanclass="name">zeros</span><spanclass="punctuation">(</span><spanclass="literal number integer">10</span><spanclass="punctuation">)</span>
<spanclass="name">Z</span><spanclass="punctuation">[</span><spanclass="literal number integer">4</span><spanclass="punctuation">]</span><spanclass="operator">=</span><spanclass="literal number integer">1</span>
<spanclass="name">Z</span><spanclass="operator">=</span><spanclass="name">np</span><spanclass="operator">.</span><spanclass="name">arange</span><spanclass="punctuation">(</span><spanclass="literal number integer">10</span><spanclass="punctuation">,</span><spanclass="literal number integer">50</span><spanclass="punctuation">)</span>
<spanclass="name">Z</span><spanclass="operator">=</span><spanclass="name">np</span><spanclass="operator">.</span><spanclass="name">arange</span><spanclass="punctuation">(</span><spanclass="literal number integer">50</span><spanclass="punctuation">)</span>
<spanclass="name">Z</span><spanclass="operator">=</span><spanclass="name">Z</span><spanclass="punctuation">[::</span><spanclass="operator">-</span><spanclass="literal number integer">1</span><spanclass="punctuation">]</span>
<spanclass="name">Z</span><spanclass="operator">=</span><spanclass="name">np</span><spanclass="operator">.</span><spanclass="name">arange</span><spanclass="punctuation">(</span><spanclass="literal number integer">9</span><spanclass="punctuation">)</span><spanclass="operator">.</span><spanclass="name">reshape</span><spanclass="punctuation">(</span><spanclass="literal number integer">3</span><spanclass="punctuation">,</span><spanclass="literal number integer">3</span><spanclass="punctuation">)</span>
<spanclass="name">nz</span><spanclass="operator">=</span><spanclass="name">np</span><spanclass="operator">.</span><spanclass="name">nonzero</span><spanclass="punctuation">([</span><spanclass="literal number integer">1</span><spanclass="punctuation">,</span><spanclass="literal number integer">2</span><spanclass="punctuation">,</span><spanclass="literal number integer">0</span><spanclass="punctuation">,</span><spanclass="literal number integer">0</span><spanclass="punctuation">,</span><spanclass="literal number integer">4</span><spanclass="punctuation">,</span><spanclass="literal number integer">0</span><spanclass="punctuation">])</span>
<spanclass="name">Z</span><spanclass="operator">=</span><spanclass="name">np</span><spanclass="operator">.</span><spanclass="name">eye</span><spanclass="punctuation">(</span><spanclass="literal number integer">3</span><spanclass="punctuation">)</span>
<spanclass="name">Z</span><spanclass="operator">=</span><spanclass="name">np</span><spanclass="operator">.</span><spanclass="name">random</span><spanclass="operator">.</span><spanclass="name">random</span><spanclass="punctuation">((</span><spanclass="literal number integer">3</span><spanclass="punctuation">,</span><spanclass="literal number integer">3</span><spanclass="punctuation">,</span><spanclass="literal number integer">3</span><spanclass="punctuation">))</span>
<spanclass="name">Z</span><spanclass="operator">=</span><spanclass="name">np</span><spanclass="operator">.</span><spanclass="name">random</span><spanclass="operator">.</span><spanclass="name">random</span><spanclass="punctuation">((</span><spanclass="literal number integer">10</span><spanclass="punctuation">,</span><spanclass="literal number integer">10</span><spanclass="punctuation">))</span>
<spanclass="name">Z</span><spanclass="operator">=</span><spanclass="name">np</span><spanclass="operator">.</span><spanclass="name">random</span><spanclass="operator">.</span><spanclass="name">random</span><spanclass="punctuation">(</span><spanclass="literal number integer">30</span><spanclass="punctuation">)</span>
<li><pclass="first">Create a 2d array with 1 on the border and 0 inside (★☆☆)</p>
<preclass="code python literal-block">
<spanclass="name">Z</span><spanclass="operator">=</span><spanclass="name">np</span><spanclass="operator">.</span><spanclass="name">ones</span><spanclass="punctuation">((</span><spanclass="literal number integer">10</span><spanclass="punctuation">,</span><spanclass="literal number integer">10</span><spanclass="punctuation">))</span>
<spanclass="name">Z</span><spanclass="punctuation">[</span><spanclass="literal number integer">1</span><spanclass="punctuation">:</span><spanclass="operator">-</span><spanclass="literal number integer">1</span><spanclass="punctuation">,</span><spanclass="literal number integer">1</span><spanclass="punctuation">:</span><spanclass="operator">-</span><spanclass="literal number integer">1</span><spanclass="punctuation">]</span><spanclass="operator">=</span><spanclass="literal number integer">0</span>
<spanclass="literal number integer">0</span><spanclass="operator">*</span><spanclass="name">np</span><spanclass="operator">.</span><spanclass="name">nan</span>
<spanclass="literal number float">0.3</span><spanclass="operator">==</span><spanclass="literal number integer">3</span><spanclass="operator">*</span><spanclass="literal number float">0.1</span>
</pre>
</li>
<li><pclass="first">Create a 5x5 matrix with values 1,2,3,4 just below the diagonal (★☆☆)</p>
<spanclass="name">Z</span><spanclass="operator">=</span><spanclass="name">np</span><spanclass="operator">.</span><spanclass="name">diag</span><spanclass="punctuation">(</span><spanclass="literal number integer">1</span><spanclass="operator">+</span><spanclass="name">np</span><spanclass="operator">.</span><spanclass="name">arange</span><spanclass="punctuation">(</span><spanclass="literal number integer">4</span><spanclass="punctuation">),</span><spanclass="name">k</span><spanclass="operator">=-</span><spanclass="literal number integer">1</span><spanclass="punctuation">)</span>
<spanclass="name">Z</span><spanclass="operator">=</span><spanclass="name">np</span><spanclass="operator">.</span><spanclass="name">zeros</span><spanclass="punctuation">((</span><spanclass="literal number integer">8</span><spanclass="punctuation">,</span><spanclass="literal number integer">8</span><spanclass="punctuation">),</span><spanclass="name">dtype</span><spanclass="operator">=</span><spanclass="name builtin">int</span><spanclass="punctuation">)</span>
<spanclass="name">Z</span><spanclass="punctuation">[</span><spanclass="literal number integer">1</span><spanclass="punctuation">::</span><spanclass="literal number integer">2</span><spanclass="punctuation">,::</span><spanclass="literal number integer">2</span><spanclass="punctuation">]</span><spanclass="operator">=</span><spanclass="literal number integer">1</span>
<spanclass="name">Z</span><spanclass="punctuation">[::</span><spanclass="literal number integer">2</span><spanclass="punctuation">,</span><spanclass="literal number integer">1</span><spanclass="punctuation">::</span><spanclass="literal number integer">2</span><spanclass="punctuation">]</span><spanclass="operator">=</span><spanclass="literal number integer">1</span>
<spanclass="keyword">print</span><spanclass="punctuation">(</span><spanclass="name">np</span><spanclass="operator">.</span><spanclass="name">unravel_index</span><spanclass="punctuation">(</span><spanclass="literal number integer">100</span><spanclass="punctuation">,(</span><spanclass="literal number integer">6</span><spanclass="punctuation">,</span><spanclass="literal number integer">7</span><spanclass="punctuation">,</span><spanclass="literal number integer">8</span><spanclass="punctuation">)))</span>
</pre>
</li>
<li><pclass="first">Create a checkerboard 8x8 matrix using the tile function (★☆☆)</p>
<spanclass="name">Z</span><spanclass="operator">=</span><spanclass="name">np</span><spanclass="operator">.</span><spanclass="name">tile</span><spanclass="punctuation">(</span><spanclass="name">np</span><spanclass="operator">.</span><spanclass="name">array</span><spanclass="punctuation">([[</span><spanclass="literal number integer">0</span><spanclass="punctuation">,</span><spanclass="literal number integer">1</span><spanclass="punctuation">],[</span><spanclass="literal number integer">1</span><spanclass="punctuation">,</span><spanclass="literal number integer">0</span><spanclass="punctuation">]]),</span><spanclass="punctuation">(</span><spanclass="literal number integer">4</span><spanclass="punctuation">,</span><spanclass="literal number integer">4</span><spanclass="punctuation">))</span>
<spanclass="name">Z</span><spanclass="operator">=</span><spanclass="name">np</span><spanclass="operator">.</span><spanclass="name">random</span><spanclass="operator">.</span><spanclass="name">random</span><spanclass="punctuation">((</span><spanclass="literal number integer">5</span><spanclass="punctuation">,</span><spanclass="literal number integer">5</span><spanclass="punctuation">))</span>
<li><pclass="first">Create a custom dtype that describes a color as four unisgned bytes (RGBA) (★☆☆)</p>
<preclass="code python literal-block">
<spanclass="name">color</span><spanclass="operator">=</span><spanclass="name">np</span><spanclass="operator">.</span><spanclass="name">dtype</span><spanclass="punctuation">([(</span><spanclass="literal string double">"r"</span><spanclass="punctuation">,</span><spanclass="name">np</span><spanclass="operator">.</span><spanclass="name">ubyte</span><spanclass="punctuation">,</span><spanclass="literal number integer">1</span><spanclass="punctuation">),</span>
<spanclass="punctuation">(</span><spanclass="literal string double">"g"</span><spanclass="punctuation">,</span><spanclass="name">np</span><spanclass="operator">.</span><spanclass="name">ubyte</span><spanclass="punctuation">,</span><spanclass="literal number integer">1</span><spanclass="punctuation">),</span>
<spanclass="punctuation">(</span><spanclass="literal string double">"b"</span><spanclass="punctuation">,</span><spanclass="name">np</span><spanclass="operator">.</span><spanclass="name">ubyte</span><spanclass="punctuation">,</span><spanclass="literal number integer">1</span><spanclass="punctuation">),</span>
<spanclass="punctuation">(</span><spanclass="literal string double">"a"</span><spanclass="punctuation">,</span><spanclass="name">np</span><spanclass="operator">.</span><spanclass="name">ubyte</span><spanclass="punctuation">,</span><spanclass="literal number integer">1</span><spanclass="punctuation">)])</span>
<spanclass="name">Z</span><spanclass="operator">=</span><spanclass="name">np</span><spanclass="operator">.</span><spanclass="name">dot</span><spanclass="punctuation">(</span><spanclass="name">np</span><spanclass="operator">.</span><spanclass="name">ones</span><spanclass="punctuation">((</span><spanclass="literal number integer">5</span><spanclass="punctuation">,</span><spanclass="literal number integer">3</span><spanclass="punctuation">)),</span><spanclass="name">np</span><spanclass="operator">.</span><spanclass="name">ones</span><spanclass="punctuation">((</span><spanclass="literal number integer">3</span><spanclass="punctuation">,</span><spanclass="literal number integer">2</span><spanclass="punctuation">)))</span>
<spanclass="name">Z</span><spanclass="operator">=</span><spanclass="name">np</span><spanclass="operator">.</span><spanclass="name">arange</span><spanclass="punctuation">(</span><spanclass="literal number integer">11</span><spanclass="punctuation">)</span>
<spanclass="name">Z</span><spanclass="punctuation">[(</span><spanclass="literal number integer">3</span><spanclass="operator"><</span><spanclass="name">Z</span><spanclass="punctuation">)</span><spanclass="operator">&</span><spanclass="punctuation">(</span><spanclass="name">Z</span><spanclass="operator"><=</span><spanclass="literal number integer">8</span><spanclass="punctuation">)]</span><spanclass="operator">*=</span><spanclass="operator">-</span><spanclass="literal number integer">1</span>
<spanclass="keyword">print</span><spanclass="punctuation">(</span><spanclass="name builtin">sum</span><spanclass="punctuation">(</span><spanclass="name builtin">range</span><spanclass="punctuation">(</span><spanclass="literal number integer">5</span><spanclass="punctuation">),</span><spanclass="operator">-</span><spanclass="literal number integer">1</span><spanclass="punctuation">))</span>
<spanclass="keyword">print</span><spanclass="punctuation">(</span><spanclass="name builtin">sum</span><spanclass="punctuation">(</span><spanclass="name builtin">range</span><spanclass="punctuation">(</span><spanclass="literal number integer">5</span><spanclass="punctuation">),</span><spanclass="operator">-</span><spanclass="literal number integer">1</span><spanclass="punctuation">))</span>
</pre>
</li>
<li><pclass="first">Consider an integer vector Z, which of these expressions are legal? (★☆☆)</p>
<spanclass="literal number integer">2</span><spanclass="operator"><<</span><spanclass="name">Z</span><spanclass="operator">>></span><spanclass="literal number integer">2</span>
<spanclass="literal number integer">1j</span><spanclass="operator">*</span><spanclass="name">Z</span>
<spanclass="name">Z</span><spanclass="operator">/</span><spanclass="literal number integer">1</span><spanclass="operator">/</span><spanclass="literal number integer">1</span>
<li><pclass="first">What are the result of the following expressions?</p>
<preclass="code python literal-block">
<spanclass="name">np</span><spanclass="operator">.</span><spanclass="name">array</span><spanclass="punctuation">(</span><spanclass="literal number integer">0</span><spanclass="punctuation">)</span><spanclass="operator">//</span><spanclass="name">np</span><spanclass="operator">.</span><spanclass="name">array</span><spanclass="punctuation">(</span><spanclass="literal number integer">0</span><spanclass="punctuation">)</span>
<spanclass="name">np</span><spanclass="operator">.</span><spanclass="name">array</span><spanclass="punctuation">(</span><spanclass="literal number integer">0</span><spanclass="punctuation">)</span><spanclass="operator">//</span><spanclass="name">np</span><spanclass="operator">.</span><spanclass="name">array</span><spanclass="punctuation">(</span><spanclass="literal number float">0.</span><spanclass="punctuation">)</span>
<spanclass="name">np</span><spanclass="operator">.</span><spanclass="name">array</span><spanclass="punctuation">(</span><spanclass="literal number integer">0</span><spanclass="punctuation">)</span><spanclass="operator">/</span><spanclass="name">np</span><spanclass="operator">.</span><spanclass="name">array</span><spanclass="punctuation">(</span><spanclass="literal number integer">0</span><spanclass="punctuation">)</span>
<spanclass="name">np</span><spanclass="operator">.</span><spanclass="name">array</span><spanclass="punctuation">(</span><spanclass="literal number integer">0</span><spanclass="punctuation">)</span><spanclass="operator">/</span><spanclass="name">np</span><spanclass="operator">.</span><spanclass="name">array</span><spanclass="punctuation">(</span><spanclass="literal number float">0.</span><spanclass="punctuation">)</span>
</pre>
</li>
<li><pclass="first">How to round away from zero a float array ? (★☆☆)</p>
<preclass="code python literal-block">
<spanclass="comment single"># Author: Charles R Harris</span>
<spanclass="name">Z</span><spanclass="operator">=</span><spanclass="name">np</span><spanclass="operator">.</span><spanclass="name">random</span><spanclass="operator">.</span><spanclass="name">uniform</span><spanclass="punctuation">(</span><spanclass="operator">-</span><spanclass="literal number integer">10</span><spanclass="punctuation">,</span><spanclass="operator">+</span><spanclass="literal number integer">10</span><spanclass="punctuation">,</span><spanclass="literal number integer">10</span><spanclass="punctuation">)</span>
<spanclass="keyword">print</span><spanclass="punctuation">(</span><spanclass="name">np</span><spanclass="operator">.</span><spanclass="name">trunc</span><spanclass="punctuation">(</span><spanclass="name">Z</span><spanclass="operator">+</span><spanclass="name">np</span><spanclass="operator">.</span><spanclass="name">copysign</span><spanclass="punctuation">(</span><spanclass="literal number float">0.5</span><spanclass="punctuation">,</span><spanclass="name">Z</span><spanclass="punctuation">)))</span>
</pre>
</li>
<li><pclass="first">Extract the integer part of a random array using 5 different methods (★★☆)</p>
<preclass="code python literal-block">
<spanclass="name">Z</span><spanclass="operator">=</span><spanclass="name">np</span><spanclass="operator">.</span><spanclass="name">random</span><spanclass="operator">.</span><spanclass="name">uniform</span><spanclass="punctuation">(</span><spanclass="literal number integer">0</span><spanclass="punctuation">,</span><spanclass="literal number integer">10</span><spanclass="punctuation">,</span><spanclass="literal number integer">10</span><spanclass="punctuation">)</span>
<spanclass="keyword">print</span><spanclass="punctuation">(</span><spanclass="name">Z</span><spanclass="operator">-</span><spanclass="name">Z</span><spanclass="operator">%</span><spanclass="literal number integer">1</span><spanclass="punctuation">)</span>
<spanclass="keyword">print</span><spanclass="punctuation">(</span><spanclass="name">np</span><spanclass="operator">.</span><spanclass="name">ceil</span><spanclass="punctuation">(</span><spanclass="name">Z</span><spanclass="punctuation">)</span><spanclass="operator">-</span><spanclass="literal number integer">1</span><spanclass="punctuation">)</span>
<spanclass="name">Z</span><spanclass="operator">=</span><spanclass="name">np</span><spanclass="operator">.</span><spanclass="name">zeros</span><spanclass="punctuation">((</span><spanclass="literal number integer">5</span><spanclass="punctuation">,</span><spanclass="literal number integer">5</span><spanclass="punctuation">))</span>
<spanclass="name">Z</span><spanclass="operator">+=</span><spanclass="name">np</span><spanclass="operator">.</span><spanclass="name">arange</span><spanclass="punctuation">(</span><spanclass="literal number integer">5</span><spanclass="punctuation">)</span>
<spanclass="keyword">for</span><spanclass="name">x</span><spanclass="operator word">in</span><spanclass="name builtin">xrange</span><spanclass="punctuation">(</span><spanclass="literal number integer">10</span><spanclass="punctuation">):</span>
<spanclass="name">Z</span><spanclass="operator">=</span><spanclass="name">np</span><spanclass="operator">.</span><spanclass="name">fromiter</span><spanclass="punctuation">(</span><spanclass="name">generate</span><spanclass="punctuation">(),</span><spanclass="name">dtype</span><spanclass="operator">=</span><spanclass="name builtin">float</span><spanclass="punctuation">,</span><spanclass="name">count</span><spanclass="operator">=-</span><spanclass="literal number integer">1</span><spanclass="punctuation">)</span>
<spanclass="name">Z</span><spanclass="operator">=</span><spanclass="name">np</span><spanclass="operator">.</span><spanclass="name">linspace</span><spanclass="punctuation">(</span><spanclass="literal number integer">0</span><spanclass="punctuation">,</span><spanclass="literal number integer">1</span><spanclass="punctuation">,</span><spanclass="literal number integer">12</span><spanclass="punctuation">,</span><spanclass="name">endpoint</span><spanclass="operator">=</span><spanclass="name builtin pseudo">True</span><spanclass="punctuation">)[</span><spanclass="literal number integer">1</span><spanclass="punctuation">:</span><spanclass="operator">-</span><spanclass="literal number integer">1</span><spanclass="punctuation">]</span>
<spanclass="name">Z</span><spanclass="operator">=</span><spanclass="name">np</span><spanclass="operator">.</span><spanclass="name">random</span><spanclass="operator">.</span><spanclass="name">random</span><spanclass="punctuation">(</span><spanclass="literal number integer">10</span><spanclass="punctuation">)</span>
<spanclass="name">Z</span><spanclass="operator">=</span><spanclass="name">np</span><spanclass="operator">.</span><spanclass="name">arange</span><spanclass="punctuation">(</span><spanclass="literal number integer">10</span><spanclass="punctuation">)</span>
<spanclass="name">A</span><spanclass="operator">=</span><spanclass="name">np</span><spanclass="operator">.</span><spanclass="name">random</span><spanclass="operator">.</span><spanclass="name">randint</span><spanclass="punctuation">(</span><spanclass="literal number integer">0</span><spanclass="punctuation">,</span><spanclass="literal number integer">2</span><spanclass="punctuation">,</span><spanclass="literal number integer">5</span><spanclass="punctuation">)</span>
<spanclass="name">B</span><spanclass="operator">=</span><spanclass="name">np</span><spanclass="operator">.</span><spanclass="name">random</span><spanclass="operator">.</span><spanclass="name">randint</span><spanclass="punctuation">(</span><spanclass="literal number integer">0</span><spanclass="punctuation">,</span><spanclass="literal number integer">2</span><spanclass="punctuation">,</span><spanclass="literal number integer">5</span><spanclass="punctuation">)</span>
<spanclass="name">Z</span><spanclass="operator">=</span><spanclass="name">np</span><spanclass="operator">.</span><spanclass="name">zeros</span><spanclass="punctuation">(</span><spanclass="literal number integer">10</span><spanclass="punctuation">)</span>
<spanclass="name">Z</span><spanclass="punctuation">[</span><spanclass="literal number integer">0</span><spanclass="punctuation">]</span><spanclass="operator">=</span><spanclass="literal number integer">1</span>
<spanclass="name">Z</span><spanclass="operator">=</span><spanclass="name">np</span><spanclass="operator">.</span><spanclass="name">random</span><spanclass="operator">.</span><spanclass="name">random</span><spanclass="punctuation">((</span><spanclass="literal number integer">10</span><spanclass="punctuation">,</span><spanclass="literal number integer">2</span><spanclass="punctuation">))</span>
<spanclass="name">X</span><spanclass="punctuation">,</span><spanclass="name">Y</span><spanclass="operator">=</span><spanclass="name">Z</span><spanclass="punctuation">[:,</span><spanclass="literal number integer">0</span><spanclass="punctuation">],</span><spanclass="name">Z</span><spanclass="punctuation">[:,</span><spanclass="literal number integer">1</span><spanclass="punctuation">]</span>
<spanclass="name">R</span><spanclass="operator">=</span><spanclass="name">np</span><spanclass="operator">.</span><spanclass="name">sqrt</span><spanclass="punctuation">(</span><spanclass="name">X</span><spanclass="operator">**</span><spanclass="literal number integer">2</span><spanclass="operator">+</span><spanclass="name">Y</span><spanclass="operator">**</span><spanclass="literal number integer">2</span><spanclass="punctuation">)</span>
<spanclass="name">Z</span><spanclass="operator">=</span><spanclass="name">np</span><spanclass="operator">.</span><spanclass="name">random</span><spanclass="operator">.</span><spanclass="name">random</span><spanclass="punctuation">(</span><spanclass="literal number integer">10</span><spanclass="punctuation">)</span>
<spanclass="name">Z</span><spanclass="punctuation">[</span><spanclass="name">Z</span><spanclass="operator">.</span><spanclass="name">argmax</span><spanclass="punctuation">()]</span><spanclass="operator">=</span><spanclass="literal number integer">0</span>
<spanclass="name">Z</span><spanclass="operator">=</span><spanclass="name">np</span><spanclass="operator">.</span><spanclass="name">zeros</span><spanclass="punctuation">((</span><spanclass="literal number integer">10</span><spanclass="punctuation">,</span><spanclass="literal number integer">10</span><spanclass="punctuation">),</span><spanclass="punctuation">[(</span><spanclass="literal string single">'x'</span><spanclass="punctuation">,</span><spanclass="name builtin">float</span><spanclass="punctuation">),(</span><spanclass="literal string single">'y'</span><spanclass="punctuation">,</span><spanclass="name builtin">float</span><spanclass="punctuation">)])</span>
<spanclass="name">Z</span><spanclass="punctuation">[</span><spanclass="literal string single">'x'</span><spanclass="punctuation">],</span><spanclass="name">Z</span><spanclass="punctuation">[</span><spanclass="literal string single">'y'</span><spanclass="punctuation">]</span><spanclass="operator">=</span><spanclass="name">np</span><spanclass="operator">.</span><spanclass="name">meshgrid</span><spanclass="punctuation">(</span><spanclass="name">np</span><spanclass="operator">.</span><spanclass="name">linspace</span><spanclass="punctuation">(</span><spanclass="literal number integer">0</span><spanclass="punctuation">,</span><spanclass="literal number integer">1</span><spanclass="punctuation">,</span><spanclass="literal number integer">10</span><spanclass="punctuation">),</span>
<spanclass="name">np</span><spanclass="operator">.</span><spanclass="name">linspace</span><spanclass="punctuation">(</span><spanclass="literal number integer">0</span><spanclass="punctuation">,</span><spanclass="literal number integer">1</span><spanclass="punctuation">,</span><spanclass="literal number integer">10</span><spanclass="punctuation">))</span>
<spanclass="name">X</span><spanclass="operator">=</span><spanclass="name">np</span><spanclass="operator">.</span><spanclass="name">arange</span><spanclass="punctuation">(</span><spanclass="literal number integer">8</span><spanclass="punctuation">)</span>
<spanclass="name">Y</span><spanclass="operator">=</span><spanclass="name">X</span><spanclass="operator">+</span><spanclass="literal number float">0.5</span>
<spanclass="name">C</span><spanclass="operator">=</span><spanclass="literal number float">1.0</span><spanclass="operator">/</span><spanclass="name">np</span><spanclass="operator">.</span><spanclass="name">subtract</span><spanclass="operator">.</span><spanclass="name">outer</span><spanclass="punctuation">(</span><spanclass="name">X</span><spanclass="punctuation">,</span><spanclass="name">Y</span><spanclass="punctuation">)</span>
<spanclass="name">Z</span><spanclass="operator">=</span><spanclass="name">np</span><spanclass="operator">.</span><spanclass="name">zeros</span><spanclass="punctuation">((</span><spanclass="literal number integer">25</span><spanclass="punctuation">,</span><spanclass="literal number integer">25</span><spanclass="punctuation">))</span>
<spanclass="name">Z</span><spanclass="operator">=</span><spanclass="name">np</span><spanclass="operator">.</span><spanclass="name">arange</span><spanclass="punctuation">(</span><spanclass="literal number integer">100</span><spanclass="punctuation">)</span>
<spanclass="name">v</span><spanclass="operator">=</span><spanclass="name">np</span><spanclass="operator">.</span><spanclass="name">random</span><spanclass="operator">.</span><spanclass="name">uniform</span><spanclass="punctuation">(</span><spanclass="literal number integer">0</span><spanclass="punctuation">,</span><spanclass="literal number integer">100</span><spanclass="punctuation">)</span>
<spanclass="name">Z</span><spanclass="operator">=</span><spanclass="name">np</span><spanclass="operator">.</span><spanclass="name">zeros</span><spanclass="punctuation">(</span><spanclass="literal number integer">10</span><spanclass="punctuation">,</span><spanclass="punctuation">[</span><spanclass="punctuation">(</span><spanclass="literal string single">'position'</span><spanclass="punctuation">,</span><spanclass="punctuation">[</span><spanclass="punctuation">(</span><spanclass="literal string single">'x'</span><spanclass="punctuation">,</span><spanclass="name builtin">float</span><spanclass="punctuation">,</span><spanclass="literal number integer">1</span><spanclass="punctuation">),</span>
<spanclass="punctuation">(</span><spanclass="literal string single">'y'</span><spanclass="punctuation">,</span><spanclass="name builtin">float</span><spanclass="punctuation">,</span><spanclass="literal number integer">1</span><spanclass="punctuation">)]),</span>
<spanclass="punctuation">(</span><spanclass="literal string single">'color'</span><spanclass="punctuation">,</span><spanclass="punctuation">[</span><spanclass="punctuation">(</span><spanclass="literal string single">'r'</span><spanclass="punctuation">,</span><spanclass="name builtin">float</span><spanclass="punctuation">,</span><spanclass="literal number integer">1</span><spanclass="punctuation">),</span>
<spanclass="punctuation">(</span><spanclass="literal string single">'g'</span><spanclass="punctuation">,</span><spanclass="name builtin">float</span><spanclass="punctuation">,</span><spanclass="literal number integer">1</span><spanclass="punctuation">),</span>
<spanclass="punctuation">(</span><spanclass="literal string single">'b'</span><spanclass="punctuation">,</span><spanclass="name builtin">float</span><spanclass="punctuation">,</span><spanclass="literal number integer">1</span><spanclass="punctuation">)])])</span>
<spanclass="name">Z</span><spanclass="operator">=</span><spanclass="name">np</span><spanclass="operator">.</span><spanclass="name">random</span><spanclass="operator">.</span><spanclass="name">random</span><spanclass="punctuation">((</span><spanclass="literal number integer">10</span><spanclass="punctuation">,</span><spanclass="literal number integer">2</span><spanclass="punctuation">))</span>
<spanclass="name">X</span><spanclass="punctuation">,</span><spanclass="name">Y</span><spanclass="operator">=</span><spanclass="name">np</span><spanclass="operator">.</span><spanclass="name">atleast_2d</span><spanclass="punctuation">(</span><spanclass="name">Z</span><spanclass="punctuation">[:,</span><spanclass="literal number integer">0</span><spanclass="punctuation">]),</span><spanclass="name">np</span><spanclass="operator">.</span><spanclass="name">atleast_2d</span><spanclass="punctuation">(</span><spanclass="name">Z</span><spanclass="punctuation">[:,</span><spanclass="literal number integer">1</span><spanclass="punctuation">])</span>
<spanclass="name">D</span><spanclass="operator">=</span><spanclass="name">np</span><spanclass="operator">.</span><spanclass="name">sqrt</span><spanclass="punctuation">(</span><spanclass="punctuation">(</span><spanclass="name">X</span><spanclass="operator">-</span><spanclass="name">X</span><spanclass="operator">.</span><spanclass="name">T</span><spanclass="punctuation">)</span><spanclass="operator">**</span><spanclass="literal number integer">2</span><spanclass="operator">+</span><spanclass="punctuation">(</span><spanclass="name">Y</span><spanclass="operator">-</span><spanclass="name">Y</span><spanclass="operator">.</span><spanclass="name">T</span><spanclass="punctuation">)</span><spanclass="operator">**</span><spanclass="literal number integer">2</span><spanclass="punctuation">)</span>
<spanclass="name">Z</span><spanclass="operator">=</span><spanclass="name">np</span><spanclass="operator">.</span><spanclass="name">random</span><spanclass="operator">.</span><spanclass="name">random</span><spanclass="punctuation">((</span><spanclass="literal number integer">10</span><spanclass="punctuation">,</span><spanclass="literal number integer">2</span><spanclass="punctuation">))</span>
<spanclass="name">Z</span><spanclass="operator">=</span><spanclass="name">np</span><spanclass="operator">.</span><spanclass="name">arange</span><spanclass="punctuation">(</span><spanclass="literal number integer">10</span><spanclass="punctuation">,</span><spanclass="name">dtype</span><spanclass="operator">=</span><spanclass="name">np</span><spanclass="operator">.</span><spanclass="name">int32</span><spanclass="punctuation">)</span>
<spanclass="literal number integer">1</span><spanclass="punctuation">,</span><spanclass="literal number integer">2</span><spanclass="punctuation">,</span><spanclass="literal number integer">3</span><spanclass="punctuation">,</span><spanclass="literal number integer">4</span><spanclass="punctuation">,</span><spanclass="literal number integer">5</span>
<spanclass="literal number integer">6</span><spanclass="punctuation">,,,</span><spanclass="literal number integer">7</span><spanclass="punctuation">,</span><spanclass="literal number integer">8</span>
<spanclass="punctuation">,,</span><spanclass="literal number integer">9</span><spanclass="punctuation">,</span><spanclass="literal number integer">10</span><spanclass="punctuation">,</span><spanclass="literal number integer">11</span>
<spanclass="name">Z</span><spanclass="operator">=</span><spanclass="name">np</span><spanclass="operator">.</span><spanclass="name">arange</span><spanclass="punctuation">(</span><spanclass="literal number integer">9</span><spanclass="punctuation">)</span><spanclass="operator">.</span><spanclass="name">reshape</span><spanclass="punctuation">(</span><spanclass="literal number integer">3</span><spanclass="punctuation">,</span><spanclass="literal number integer">3</span><spanclass="punctuation">)</span>
<spanclass="name">X</span><spanclass="punctuation">,</span><spanclass="name">Y</span><spanclass="operator">=</span><spanclass="name">np</span><spanclass="operator">.</span><spanclass="name">meshgrid</span><spanclass="punctuation">(</span><spanclass="name">np</span><spanclass="operator">.</span><spanclass="name">linspace</span><spanclass="punctuation">(</span><spanclass="operator">-</span><spanclass="literal number integer">1</span><spanclass="punctuation">,</span><spanclass="literal number integer">1</span><spanclass="punctuation">,</span><spanclass="literal number integer">10</span><spanclass="punctuation">),</span><spanclass="name">np</span><spanclass="operator">.</span><spanclass="name">linspace</span><spanclass="punctuation">(</span><spanclass="operator">-</span><spanclass="literal number integer">1</span><spanclass="punctuation">,</span><spanclass="literal number integer">1</span><spanclass="punctuation">,</span><spanclass="literal number integer">10</span><spanclass="punctuation">))</span>
<spanclass="name">sigma</span><spanclass="punctuation">,</span><spanclass="name">mu</span><spanclass="operator">=</span><spanclass="literal number float">1.0</span><spanclass="punctuation">,</span><spanclass="literal number float">0.0</span>
<spanclass="name">G</span><spanclass="operator">=</span><spanclass="name">np</span><spanclass="operator">.</span><spanclass="name">exp</span><spanclass="punctuation">(</span><spanclass="operator">-</span><spanclass="punctuation">(</span><spanclass="punctuation">(</span><spanclass="name">D</span><spanclass="operator">-</span><spanclass="name">mu</span><spanclass="punctuation">)</span><spanclass="operator">**</span><spanclass="literal number integer">2</span><spanclass="operator">/</span><spanclass="punctuation">(</span><spanclass="literal number float">2.0</span><spanclass="operator">*</span><spanclass="name">sigma</span><spanclass="operator">**</span><spanclass="literal number integer">2</span><spanclass="punctuation">)</span><spanclass="punctuation">)</span><spanclass="punctuation">)</span>
<spanclass="name">X</span><spanclass="operator">=</span><spanclass="name">np</span><spanclass="operator">.</span><spanclass="name">random</span><spanclass="operator">.</span><spanclass="name">rand</span><spanclass="punctuation">(</span><spanclass="literal number integer">5</span><spanclass="punctuation">,</span><spanclass="literal number integer">10</span><spanclass="punctuation">)</span>
<spanclass="name">Y</span><spanclass="operator">=</span><spanclass="name">X</span><spanclass="operator">-</span><spanclass="name">X</span><spanclass="operator">.</span><spanclass="name">mean</span><spanclass="punctuation">(</span><spanclass="name">axis</span><spanclass="operator">=</span><spanclass="literal number integer">1</span><spanclass="punctuation">,</span><spanclass="name">keepdims</span><spanclass="operator">=</span><spanclass="name builtin pseudo">True</span><spanclass="punctuation">)</span>
<spanclass="name">Y</span><spanclass="operator">=</span><spanclass="name">X</span><spanclass="operator">-</span><spanclass="name">X</span><spanclass="operator">.</span><spanclass="name">mean</span><spanclass="punctuation">(</span><spanclass="name">axis</span><spanclass="operator">=</span><spanclass="literal number integer">1</span><spanclass="punctuation">)</span><spanclass="operator">.</span><spanclass="name">reshape</span><spanclass="punctuation">(</span><spanclass="operator">-</span><spanclass="literal number integer">1</span><spanclass="punctuation">,</span><spanclass="literal number integer">1</span><spanclass="punctuation">)</span>
<spanclass="name">Z</span><spanclass="operator">=</span><spanclass="name">np</span><spanclass="operator">.</span><spanclass="name">random</span><spanclass="operator">.</span><spanclass="name">randint</span><spanclass="punctuation">(</span><spanclass="literal number integer">0</span><spanclass="punctuation">,</span><spanclass="literal number integer">10</span><spanclass="punctuation">,(</span><spanclass="literal number integer">3</span><spanclass="punctuation">,</span><spanclass="literal number integer">3</span><spanclass="punctuation">))</span>
<spanclass="keyword">print</span><spanclass="punctuation">(</span><spanclass="name">Z</span><spanclass="punctuation">[</span><spanclass="name">Z</span><spanclass="punctuation">[:,</span><spanclass="literal number integer">1</span><spanclass="punctuation">]</span><spanclass="operator">.</span><spanclass="name">argsort</span><spanclass="punctuation">()])</span>
<spanclass="name">Z</span><spanclass="operator">=</span><spanclass="name">np</span><spanclass="operator">.</span><spanclass="name">random</span><spanclass="operator">.</span><spanclass="name">randint</span><spanclass="punctuation">(</span><spanclass="literal number integer">0</span><spanclass="punctuation">,</span><spanclass="literal number integer">3</span><spanclass="punctuation">,(</span><spanclass="literal number integer">3</span><spanclass="punctuation">,</span><spanclass="literal number integer">10</span><spanclass="punctuation">))</span>
<spanclass="keyword">print</span><spanclass="punctuation">((</span><spanclass="operator">~</span><spanclass="name">Z</span><spanclass="operator">.</span><spanclass="name">any</span><spanclass="punctuation">(</span><spanclass="name">axis</span><spanclass="operator">=</span><spanclass="literal number integer">0</span><spanclass="punctuation">))</span><spanclass="operator">.</span><spanclass="name">any</span><spanclass="punctuation">())</span>
<spanclass="name">Z</span><spanclass="operator">=</span><spanclass="name">np</span><spanclass="operator">.</span><spanclass="name">random</span><spanclass="operator">.</span><spanclass="name">uniform</span><spanclass="punctuation">(</span><spanclass="literal number integer">0</span><spanclass="punctuation">,</span><spanclass="literal number integer">1</span><spanclass="punctuation">,</span><spanclass="literal number integer">10</span><spanclass="punctuation">)</span>
<spanclass="name">z</span><spanclass="operator">=</span><spanclass="literal number float">0.5</span>
<spanclass="name">Z</span><spanclass="operator">=</span><spanclass="name">NamedArray</span><spanclass="punctuation">(</span><spanclass="name">np</span><spanclass="operator">.</span><spanclass="name">arange</span><spanclass="punctuation">(</span><spanclass="literal number integer">10</span><spanclass="punctuation">),</span><spanclass="literal string double">"range_10"</span><spanclass="punctuation">)</span>
<spanclass="name">Z</span><spanclass="operator">=</span><spanclass="name">np</span><spanclass="operator">.</span><spanclass="name">ones</span><spanclass="punctuation">(</span><spanclass="literal number integer">10</span><spanclass="punctuation">)</span>
<spanclass="name">I</span><spanclass="operator">=</span><spanclass="name">np</span><spanclass="operator">.</span><spanclass="name">random</span><spanclass="operator">.</span><spanclass="name">randint</span><spanclass="punctuation">(</span><spanclass="literal number integer">0</span><spanclass="punctuation">,</span><spanclass="name builtin">len</span><spanclass="punctuation">(</span><spanclass="name">Z</span><spanclass="punctuation">),</span><spanclass="literal number integer">20</span><spanclass="punctuation">)</span>
<spanclass="name">X</span><spanclass="operator">=</span><spanclass="punctuation">[</span><spanclass="literal number integer">1</span><spanclass="punctuation">,</span><spanclass="literal number integer">2</span><spanclass="punctuation">,</span><spanclass="literal number integer">3</span><spanclass="punctuation">,</span><spanclass="literal number integer">4</span><spanclass="punctuation">,</span><spanclass="literal number integer">5</span><spanclass="punctuation">,</span><spanclass="literal number integer">6</span><spanclass="punctuation">]</span>
<spanclass="name">I</span><spanclass="operator">=</span><spanclass="punctuation">[</span><spanclass="literal number integer">1</span><spanclass="punctuation">,</span><spanclass="literal number integer">3</span><spanclass="punctuation">,</span><spanclass="literal number integer">9</span><spanclass="punctuation">,</span><spanclass="literal number integer">3</span><spanclass="punctuation">,</span><spanclass="literal number integer">4</span><spanclass="punctuation">,</span><spanclass="literal number integer">1</span><spanclass="punctuation">]</span>
<spanclass="name">w</span><spanclass="punctuation">,</span><spanclass="name">h</span><spanclass="operator">=</span><spanclass="literal number integer">16</span><spanclass="punctuation">,</span><spanclass="literal number integer">16</span>
<spanclass="name">I</span><spanclass="operator">=</span><spanclass="name">np</span><spanclass="operator">.</span><spanclass="name">random</span><spanclass="operator">.</span><spanclass="name">randint</span><spanclass="punctuation">(</span><spanclass="literal number integer">0</span><spanclass="punctuation">,</span><spanclass="literal number integer">2</span><spanclass="punctuation">,(</span><spanclass="name">h</span><spanclass="punctuation">,</span><spanclass="name">w</span><spanclass="punctuation">,</span><spanclass="literal number integer">3</span><spanclass="punctuation">))</span><spanclass="operator">.</span><spanclass="name">astype</span><spanclass="punctuation">(</span><spanclass="name">np</span><spanclass="operator">.</span><spanclass="name">ubyte</span><spanclass="punctuation">)</span>
<spanclass="name">F</span><spanclass="operator">=</span><spanclass="name">I</span><spanclass="punctuation">[</span><spanclass="operator">...</span><spanclass="punctuation">,</span><spanclass="literal number integer">0</span><spanclass="punctuation">]</span><spanclass="operator">*</span><spanclass="literal number integer">256</span><spanclass="operator">*</span><spanclass="literal number integer">256</span><spanclass="operator">+</span><spanclass="name">I</span><spanclass="punctuation">[</span><spanclass="operator">...</span><spanclass="punctuation">,</span><spanclass="literal number integer">1</span><spanclass="punctuation">]</span><spanclass="operator">*</span><spanclass="literal number integer">256</span><spanclass="operator">+</span><spanclass="name">I</span><spanclass="punctuation">[</span><spanclass="operator">...</span><spanclass="punctuation">,</span><spanclass="literal number integer">2</span><spanclass="punctuation">]</span>
<spanclass="name">A</span><spanclass="operator">=</span><spanclass="name">np</span><spanclass="operator">.</span><spanclass="name">random</span><spanclass="operator">.</span><spanclass="name">randint</span><spanclass="punctuation">(</span><spanclass="literal number integer">0</span><spanclass="punctuation">,</span><spanclass="literal number integer">10</span><spanclass="punctuation">,(</span><spanclass="literal number integer">3</span><spanclass="punctuation">,</span><spanclass="literal number integer">4</span><spanclass="punctuation">,</span><spanclass="literal number integer">3</span><spanclass="punctuation">,</span><spanclass="literal number integer">4</span><spanclass="punctuation">))</span>
<spanclass="name builtin">sum</span><spanclass="operator">=</span><spanclass="name">A</span><spanclass="operator">.</span><spanclass="name">reshape</span><spanclass="punctuation">(</span><spanclass="name">A</span><spanclass="operator">.</span><spanclass="name">shape</span><spanclass="punctuation">[:</span><spanclass="operator">-</span><spanclass="literal number integer">2</span><spanclass="punctuation">]</span><spanclass="operator">+</span><spanclass="punctuation">(</span><spanclass="operator">-</span><spanclass="literal number integer">1</span><spanclass="punctuation">,))</span><spanclass="operator">.</span><spanclass="name">sum</span><spanclass="punctuation">(</span><spanclass="name">axis</span><spanclass="operator">=-</span><spanclass="literal number integer">1</span><spanclass="punctuation">)</span>
<spanclass="name">D</span><spanclass="operator">=</span><spanclass="name">np</span><spanclass="operator">.</span><spanclass="name">random</span><spanclass="operator">.</span><spanclass="name">uniform</span><spanclass="punctuation">(</span><spanclass="literal number integer">0</span><spanclass="punctuation">,</span><spanclass="literal number integer">1</span><spanclass="punctuation">,</span><spanclass="literal number integer">100</span><spanclass="punctuation">)</span>
<spanclass="name">S</span><spanclass="operator">=</span><spanclass="name">np</span><spanclass="operator">.</span><spanclass="name">random</span><spanclass="operator">.</span><spanclass="name">randint</span><spanclass="punctuation">(</span><spanclass="literal number integer">0</span><spanclass="punctuation">,</span><spanclass="literal number integer">10</span><spanclass="punctuation">,</span><spanclass="literal number integer">100</span><spanclass="punctuation">)</span>
<spanclass="name">np</span><spanclass="operator">.</span><spanclass="name">sum</span><spanclass="punctuation">(</span><spanclass="name">A</span><spanclass="operator">*</span><spanclass="name">B</span><spanclass="operator">.</span><spanclass="name">T</span><spanclass="punctuation">,</span><spanclass="name">axis</span><spanclass="operator">=</span><spanclass="literal number integer">1</span><spanclass="punctuation">)</span>
<spanclass="name">Z</span><spanclass="operator">=</span><spanclass="name">np</span><spanclass="operator">.</span><spanclass="name">array</span><spanclass="punctuation">([</span><spanclass="literal number integer">1</span><spanclass="punctuation">,</span><spanclass="literal number integer">2</span><spanclass="punctuation">,</span><spanclass="literal number integer">3</span><spanclass="punctuation">,</span><spanclass="literal number integer">4</span><spanclass="punctuation">,</span><spanclass="literal number integer">5</span><spanclass="punctuation">])</span>
<spanclass="name">nz</span><spanclass="operator">=</span><spanclass="literal number integer">3</span>
<spanclass="name">Z0</span><spanclass="operator">=</span><spanclass="name">np</span><spanclass="operator">.</span><spanclass="name">zeros</span><spanclass="punctuation">(</span><spanclass="name builtin">len</span><spanclass="punctuation">(</span><spanclass="name">Z</span><spanclass="punctuation">)</span><spanclass="operator">+</span><spanclass="punctuation">(</span><spanclass="name builtin">len</span><spanclass="punctuation">(</span><spanclass="name">Z</span><spanclass="punctuation">)</span><spanclass="operator">-</span><spanclass="literal number integer">1</span><spanclass="punctuation">)</span><spanclass="operator">*</span><spanclass="punctuation">(</span><spanclass="name">nz</span><spanclass="punctuation">))</span>
<spanclass="name">Z0</span><spanclass="punctuation">[::</span><spanclass="name">nz</span><spanclass="operator">+</span><spanclass="literal number integer">1</span><spanclass="punctuation">]</span><spanclass="operator">=</span><spanclass="name">Z</span>
<spanclass="name">A</span><spanclass="operator">=</span><spanclass="name">np</span><spanclass="operator">.</span><spanclass="name">ones</span><spanclass="punctuation">((</span><spanclass="literal number integer">5</span><spanclass="punctuation">,</span><spanclass="literal number integer">5</span><spanclass="punctuation">,</span><spanclass="literal number integer">3</span><spanclass="punctuation">))</span>
<spanclass="name">B</span><spanclass="operator">=</span><spanclass="literal number integer">2</span><spanclass="operator">*</span><spanclass="name">np</span><spanclass="operator">.</span><spanclass="name">ones</span><spanclass="punctuation">((</span><spanclass="literal number integer">5</span><spanclass="punctuation">,</span><spanclass="literal number integer">5</span><spanclass="punctuation">))</span>
<spanclass="name">A</span><spanclass="operator">=</span><spanclass="name">np</span><spanclass="operator">.</span><spanclass="name">arange</span><spanclass="punctuation">(</span><spanclass="literal number integer">25</span><spanclass="punctuation">)</span><spanclass="operator">.</span><spanclass="name">reshape</span><spanclass="punctuation">(</span><spanclass="literal number integer">5</span><spanclass="punctuation">,</span><spanclass="literal number integer">5</span><spanclass="punctuation">)</span>
<spanclass="name">A</span><spanclass="punctuation">[[</span><spanclass="literal number integer">0</span><spanclass="punctuation">,</span><spanclass="literal number integer">1</span><spanclass="punctuation">]]</span><spanclass="operator">=</span><spanclass="name">A</span><spanclass="punctuation">[[</span><spanclass="literal number integer">1</span><spanclass="punctuation">,</span><spanclass="literal number integer">0</span><spanclass="punctuation">]]</span>
<spanclass="name">faces</span><spanclass="operator">=</span><spanclass="name">np</span><spanclass="operator">.</span><spanclass="name">random</span><spanclass="operator">.</span><spanclass="name">randint</span><spanclass="punctuation">(</span><spanclass="literal number integer">0</span><spanclass="punctuation">,</span><spanclass="literal number integer">100</span><spanclass="punctuation">,(</span><spanclass="literal number integer">10</span><spanclass="punctuation">,</span><spanclass="literal number integer">3</span><spanclass="punctuation">))</span>
<spanclass="name">F</span><spanclass="operator">=</span><spanclass="name">np</span><spanclass="operator">.</span><spanclass="name">roll</span><spanclass="punctuation">(</span><spanclass="name">faces</span><spanclass="operator">.</span><spanclass="name">repeat</span><spanclass="punctuation">(</span><spanclass="literal number integer">2</span><spanclass="punctuation">,</span><spanclass="name">axis</span><spanclass="operator">=</span><spanclass="literal number integer">1</span><spanclass="punctuation">),</span><spanclass="operator">-</span><spanclass="literal number integer">1</span><spanclass="punctuation">,</span><spanclass="name">axis</span><spanclass="operator">=</span><spanclass="literal number integer">1</span><spanclass="punctuation">)</span>
<spanclass="name">F</span><spanclass="operator">=</span><spanclass="name">F</span><spanclass="operator">.</span><spanclass="name">reshape</span><spanclass="punctuation">(</span><spanclass="name builtin">len</span><spanclass="punctuation">(</span><spanclass="name">F</span><spanclass="punctuation">)</span><spanclass="operator">*</span><spanclass="literal number integer">3</span><spanclass="punctuation">,</span><spanclass="literal number integer">2</span><spanclass="punctuation">)</span>
<spanclass="name">F</span><spanclass="operator">=</span><spanclass="name">np</span><spanclass="operator">.</span><spanclass="name">sort</span><spanclass="punctuation">(</span><spanclass="name">F</span><spanclass="punctuation">,</span><spanclass="name">axis</span><spanclass="operator">=</span><spanclass="literal number integer">1</span><spanclass="punctuation">)</span>
<spanclass="name">C</span><spanclass="operator">=</span><spanclass="name">np</span><spanclass="operator">.</span><spanclass="name">bincount</span><spanclass="punctuation">([</span><spanclass="literal number integer">1</span><spanclass="punctuation">,</span><spanclass="literal number integer">1</span><spanclass="punctuation">,</span><spanclass="literal number integer">2</span><spanclass="punctuation">,</span><spanclass="literal number integer">3</span><spanclass="punctuation">,</span><spanclass="literal number integer">4</span><spanclass="punctuation">,</span><spanclass="literal number integer">4</span><spanclass="punctuation">,</span><spanclass="literal number integer">6</span><spanclass="punctuation">])</span>
<spanclass="keyword">def</span><spanclass="name function">moving_average</span><spanclass="punctuation">(</span><spanclass="name">a</span><spanclass="punctuation">,</span><spanclass="name">n</span><spanclass="operator">=</span><spanclass="literal number integer">3</span><spanclass="punctuation">)</span><spanclass="punctuation">:</span>
<spanclass="keyword">return</span><spanclass="name">ret</span><spanclass="punctuation">[</span><spanclass="name">n</span><spanclass="operator">-</span><spanclass="literal number integer">1</span><spanclass="punctuation">:]</span><spanclass="operator">/</span><spanclass="name">n</span>
<spanclass="name">Z</span><spanclass="operator">=</span><spanclass="name">np</span><spanclass="operator">.</span><spanclass="name">arange</span><spanclass="punctuation">(</span><spanclass="literal number integer">20</span><spanclass="punctuation">)</span>
<spanclass="keyword">print</span><spanclass="punctuation">(</span><spanclass="name">moving_average</span><spanclass="punctuation">(</span><spanclass="name">Z</span><spanclass="punctuation">,</span><spanclass="name">n</span><spanclass="operator">=</span><spanclass="literal number integer">3</span><spanclass="punctuation">))</span>
<spanclass="name">shape</span><spanclass="operator">=</span><spanclass="punctuation">(</span><spanclass="name">a</span><spanclass="operator">.</span><spanclass="name">size</span><spanclass="operator">-</span><spanclass="name">window</span><spanclass="operator">+</span><spanclass="literal number integer">1</span><spanclass="punctuation">,</span><spanclass="name">window</span><spanclass="punctuation">)</span>
<spanclass="name">Z</span><spanclass="operator">=</span><spanclass="name">rolling</span><spanclass="punctuation">(</span><spanclass="name">np</span><spanclass="operator">.</span><spanclass="name">arange</span><spanclass="punctuation">(</span><spanclass="literal number integer">10</span><spanclass="punctuation">),</span><spanclass="literal number integer">3</span><spanclass="punctuation">)</span>
<spanclass="name">Z</span><spanclass="operator">=</span><spanclass="name">np</span><spanclass="operator">.</span><spanclass="name">random</span><spanclass="operator">.</span><spanclass="name">randint</span><spanclass="punctuation">(</span><spanclass="literal number integer">0</span><spanclass="punctuation">,</span><spanclass="literal number integer">2</span><spanclass="punctuation">,</span><spanclass="literal number integer">100</span><spanclass="punctuation">)</span>
<spanclass="name">Z</span><spanclass="operator">=</span><spanclass="name">np</span><spanclass="operator">.</span><spanclass="name">random</span><spanclass="operator">.</span><spanclass="name">uniform</span><spanclass="punctuation">(</span><spanclass="operator">-</span><spanclass="literal number float">1.0</span><spanclass="punctuation">,</span><spanclass="literal number float">1.0</span><spanclass="punctuation">,</span><spanclass="literal number integer">100</span><spanclass="punctuation">)</span>
<spanclass="name">L</span><spanclass="operator">=</span><spanclass="punctuation">(</span><spanclass="name">T</span><spanclass="operator">**</span><spanclass="literal number integer">2</span><spanclass="punctuation">)</span><spanclass="operator">.</span><spanclass="name">sum</span><spanclass="punctuation">(</span><spanclass="name">axis</span><spanclass="operator">=</span><spanclass="literal number integer">1</span><spanclass="punctuation">)</span>
<spanclass="name">U</span><spanclass="operator">=</span><spanclass="operator">-</span><spanclass="punctuation">((</span><spanclass="name">P0</span><spanclass="punctuation">[:,</span><spanclass="literal number integer">0</span><spanclass="punctuation">]</span><spanclass="operator">-</span><spanclass="name">p</span><spanclass="punctuation">[</span><spanclass="operator">...</span><spanclass="punctuation">,</span><spanclass="literal number integer">0</span><spanclass="punctuation">])</span><spanclass="operator">*</span><spanclass="name">T</span><spanclass="punctuation">[:,</span><spanclass="literal number integer">0</span><spanclass="punctuation">]</span><spanclass="operator">+</span><spanclass="punctuation">(</span><spanclass="name">P0</span><spanclass="punctuation">[:,</span><spanclass="literal number integer">1</span><spanclass="punctuation">]</span><spanclass="operator">-</span><spanclass="name">p</span><spanclass="punctuation">[</span><spanclass="operator">...</span><spanclass="punctuation">,</span><spanclass="literal number integer">1</span><spanclass="punctuation">])</span><spanclass="operator">*</span><spanclass="name">T</span><spanclass="punctuation">[:,</span><spanclass="literal number integer">1</span><spanclass="punctuation">])</span><spanclass="operator">/</span><spanclass="name">L</span>
<spanclass="name">U</span><spanclass="operator">=</span><spanclass="name">U</span><spanclass="operator">.</span><spanclass="name">reshape</span><spanclass="punctuation">(</span><spanclass="name builtin">len</span><spanclass="punctuation">(</span><spanclass="name">U</span><spanclass="punctuation">),</span><spanclass="literal number integer">1</span><spanclass="punctuation">)</span>
<spanclass="keyword">return</span><spanclass="name">np</span><spanclass="operator">.</span><spanclass="name">sqrt</span><spanclass="punctuation">((</span><spanclass="name">D</span><spanclass="operator">**</span><spanclass="literal number integer">2</span><spanclass="punctuation">)</span><spanclass="operator">.</span><spanclass="name">sum</span><spanclass="punctuation">(</span><spanclass="name">axis</span><spanclass="operator">=</span><spanclass="literal number integer">1</span><spanclass="punctuation">))</span>
<spanclass="name">P0</span><spanclass="operator">=</span><spanclass="name">np</span><spanclass="operator">.</span><spanclass="name">random</span><spanclass="operator">.</span><spanclass="name">uniform</span><spanclass="punctuation">(</span><spanclass="operator">-</span><spanclass="literal number integer">10</span><spanclass="punctuation">,</span><spanclass="literal number integer">10</span><spanclass="punctuation">,(</span><spanclass="literal number integer">10</span><spanclass="punctuation">,</span><spanclass="literal number integer">2</span><spanclass="punctuation">))</span>
<spanclass="name">P1</span><spanclass="operator">=</span><spanclass="name">np</span><spanclass="operator">.</span><spanclass="name">random</span><spanclass="operator">.</span><spanclass="name">uniform</span><spanclass="punctuation">(</span><spanclass="operator">-</span><spanclass="literal number integer">10</span><spanclass="punctuation">,</span><spanclass="literal number integer">10</span><spanclass="punctuation">,(</span><spanclass="literal number integer">10</span><spanclass="punctuation">,</span><spanclass="literal number integer">2</span><spanclass="punctuation">))</span>
<spanclass="name">p</span><spanclass="operator">=</span><spanclass="name">np</span><spanclass="operator">.</span><spanclass="name">random</span><spanclass="operator">.</span><spanclass="name">uniform</span><spanclass="punctuation">(</span><spanclass="operator">-</span><spanclass="literal number integer">10</span><spanclass="punctuation">,</span><spanclass="literal number integer">10</span><spanclass="punctuation">,(</span><spanclass="literal number integer">1</span><spanclass="punctuation">,</span><spanclass="literal number integer">2</span><spanclass="punctuation">))</span>
<spanclass="name">P0</span><spanclass="operator">=</span><spanclass="name">np</span><spanclass="operator">.</span><spanclass="name">random</span><spanclass="operator">.</span><spanclass="name">uniform</span><spanclass="punctuation">(</span><spanclass="operator">-</span><spanclass="literal number integer">10</span><spanclass="punctuation">,</span><spanclass="literal number integer">10</span><spanclass="punctuation">,</span><spanclass="punctuation">(</span><spanclass="literal number integer">10</span><spanclass="punctuation">,</span><spanclass="literal number integer">2</span><spanclass="punctuation">))</span>
<spanclass="name">P1</span><spanclass="operator">=</span><spanclass="name">np</span><spanclass="operator">.</span><spanclass="name">random</span><spanclass="operator">.</span><spanclass="name">uniform</span><spanclass="punctuation">(</span><spanclass="operator">-</span><spanclass="literal number integer">10</span><spanclass="punctuation">,</span><spanclass="literal number integer">10</span><spanclass="punctuation">,(</span><spanclass="literal number integer">10</span><spanclass="punctuation">,</span><spanclass="literal number integer">2</span><spanclass="punctuation">))</span>
<spanclass="name">p</span><spanclass="operator">=</span><spanclass="name">np</span><spanclass="operator">.</span><spanclass="name">random</span><spanclass="operator">.</span><spanclass="name">uniform</span><spanclass="punctuation">(</span><spanclass="operator">-</span><spanclass="literal number integer">10</span><spanclass="punctuation">,</span><spanclass="literal number integer">10</span><spanclass="punctuation">,</span><spanclass="punctuation">(</span><spanclass="literal number integer">10</span><spanclass="punctuation">,</span><spanclass="literal number integer">2</span><spanclass="punctuation">))</span>
<spanclass="name">Z</span><spanclass="operator">=</span><spanclass="name">np</span><spanclass="operator">.</span><spanclass="name">random</span><spanclass="operator">.</span><spanclass="name">randint</span><spanclass="punctuation">(</span><spanclass="literal number integer">0</span><spanclass="punctuation">,</span><spanclass="literal number integer">10</span><spanclass="punctuation">,(</span><spanclass="literal number integer">10</span><spanclass="punctuation">,</span><spanclass="literal number integer">10</span><spanclass="punctuation">))</span>
<spanclass="name">shape</span><spanclass="operator">=</span><spanclass="punctuation">(</span><spanclass="literal number integer">5</span><spanclass="punctuation">,</span><spanclass="literal number integer">5</span><spanclass="punctuation">)</span>
<spanclass="name">position</span><spanclass="operator">=</span><spanclass="punctuation">(</span><spanclass="literal number integer">1</span><spanclass="punctuation">,</span><spanclass="literal number integer">1</span><spanclass="punctuation">)</span>
<spanclass="name">Z_start</span><spanclass="operator">=</span><spanclass="punctuation">(</span><spanclass="name">P</span><spanclass="operator">-</span><spanclass="name">Rs</span><spanclass="operator">//</span><spanclass="literal number integer">2</span><spanclass="punctuation">)</span>
<spanclass="name">Z_stop</span><spanclass="operator">=</span><spanclass="punctuation">(</span><spanclass="name">P</span><spanclass="operator">+</span><spanclass="name">Rs</span><spanclass="operator">//</span><spanclass="literal number integer">2</span><spanclass="punctuation">)</span><spanclass="operator">+</span><spanclass="name">Rs</span><spanclass="operator">%</span><spanclass="literal number integer">2</span>
<spanclass="name">R_start</span><spanclass="operator">=</span><spanclass="punctuation">(</span><spanclass="name">R_start</span><spanclass="operator">-</span><spanclass="name">np</span><spanclass="operator">.</span><spanclass="name">minimum</span><spanclass="punctuation">(</span><spanclass="name">Z_start</span><spanclass="punctuation">,</span><spanclass="literal number integer">0</span><spanclass="punctuation">))</span><spanclass="operator">.</span><spanclass="name">tolist</span><spanclass="punctuation">()</span>
<spanclass="name">Z_start</span><spanclass="operator">=</span><spanclass="punctuation">(</span><spanclass="name">np</span><spanclass="operator">.</span><spanclass="name">maximum</span><spanclass="punctuation">(</span><spanclass="name">Z_start</span><spanclass="punctuation">,</span><spanclass="literal number integer">0</span><spanclass="punctuation">))</span><spanclass="operator">.</span><spanclass="name">tolist</span><spanclass="punctuation">()</span>
<spanclass="name">R_stop</span><spanclass="operator">=</span><spanclass="name">np</span><spanclass="operator">.</span><spanclass="name">maximum</span><spanclass="punctuation">(</span><spanclass="name">R_start</span><spanclass="punctuation">,</span><spanclass="punctuation">(</span><spanclass="name">R_stop</span><spanclass="operator">-</span><spanclass="name">np</span><spanclass="operator">.</span><spanclass="name">maximum</span><spanclass="punctuation">(</span><spanclass="name">Z_stop</span><spanclass="operator">-</span><spanclass="name">Zs</span><spanclass="punctuation">,</span><spanclass="literal number integer">0</span><spanclass="punctuation">)))</span><spanclass="operator">.</span><spanclass="name">tolist</span><spanclass="punctuation">()</span>
<spanclass="name">Z</span><spanclass="operator">=</span><spanclass="name">np</span><spanclass="operator">.</span><spanclass="name">arange</span><spanclass="punctuation">(</span><spanclass="literal number integer">1</span><spanclass="punctuation">,</span><spanclass="literal number integer">15</span><spanclass="punctuation">,</span><spanclass="name">dtype</span><spanclass="operator">=</span><spanclass="name">uint32</span><spanclass="punctuation">)</span>
<spanclass="name">R</span><spanclass="operator">=</span><spanclass="name">stride_tricks</span><spanclass="operator">.</span><spanclass="name">as_strided</span><spanclass="punctuation">(</span><spanclass="name">Z</span><spanclass="punctuation">,(</span><spanclass="literal number integer">11</span><spanclass="punctuation">,</span><spanclass="literal number integer">4</span><spanclass="punctuation">),(</span><spanclass="literal number integer">4</span><spanclass="punctuation">,</span><spanclass="literal number integer">4</span><spanclass="punctuation">))</span>
<spanclass="name">Z</span><spanclass="operator">=</span><spanclass="name">np</span><spanclass="operator">.</span><spanclass="name">random</span><spanclass="operator">.</span><spanclass="name">uniform</span><spanclass="punctuation">(</span><spanclass="literal number integer">0</span><spanclass="punctuation">,</span><spanclass="literal number integer">1</span><spanclass="punctuation">,(</span><spanclass="literal number integer">10</span><spanclass="punctuation">,</span><spanclass="literal number integer">10</span><spanclass="punctuation">))</span>
<spanclass="name">U</span><spanclass="punctuation">,</span><spanclass="name">S</span><spanclass="punctuation">,</span><spanclass="name">V</span><spanclass="operator">=</span><spanclass="name">np</span><spanclass="operator">.</span><spanclass="name">linalg</span><spanclass="operator">.</span><spanclass="name">svd</span><spanclass="punctuation">(</span><spanclass="name">Z</span><spanclass="punctuation">)</span><spanclass="comment single"># Singular Value Decomposition</span>
<spanclass="name">rank</span><spanclass="operator">=</span><spanclass="name">np</span><spanclass="operator">.</span><spanclass="name">sum</span><spanclass="punctuation">(</span><spanclass="name">S</span><spanclass="operator">></span><spanclass="literal number float">1e-10</span><spanclass="punctuation">)</span>
<spanclass="name">Z</span><spanclass="operator">=</span><spanclass="name">np</span><spanclass="operator">.</span><spanclass="name">random</span><spanclass="operator">.</span><spanclass="name">randint</span><spanclass="punctuation">(</span><spanclass="literal number integer">0</span><spanclass="punctuation">,</span><spanclass="literal number integer">10</span><spanclass="punctuation">,</span><spanclass="literal number integer">50</span><spanclass="punctuation">)</span>
<spanclass="name">Z</span><spanclass="operator">=</span><spanclass="name">np</span><spanclass="operator">.</span><spanclass="name">random</span><spanclass="operator">.</span><spanclass="name">randint</span><spanclass="punctuation">(</span><spanclass="literal number integer">0</span><spanclass="punctuation">,</span><spanclass="literal number integer">5</span><spanclass="punctuation">,(</span><spanclass="literal number integer">10</span><spanclass="punctuation">,</span><spanclass="literal number integer">10</span><spanclass="punctuation">))</span>
<spanclass="name">n</span><spanclass="operator">=</span><spanclass="literal number integer">3</span>
<spanclass="name">i</span><spanclass="operator">=</span><spanclass="literal number integer">1</span><spanclass="operator">+</span><spanclass="punctuation">(</span><spanclass="name">Z</span><spanclass="operator">.</span><spanclass="name">shape</span><spanclass="punctuation">[</span><spanclass="literal number integer">0</span><spanclass="punctuation">]</span><spanclass="operator">-</span><spanclass="literal number integer">3</span><spanclass="punctuation">)</span>
<spanclass="name">j</span><spanclass="operator">=</span><spanclass="literal number integer">1</span><spanclass="operator">+</span><spanclass="punctuation">(</span><spanclass="name">Z</span><spanclass="operator">.</span><spanclass="name">shape</span><spanclass="punctuation">[</span><spanclass="literal number integer">1</span><spanclass="punctuation">]</span><spanclass="operator">-</span><spanclass="literal number integer">3</span><spanclass="punctuation">)</span>
<spanclass="name">S</span><spanclass="operator">=</span><spanclass="name">symetric</span><spanclass="punctuation">(</span><spanclass="name">np</span><spanclass="operator">.</span><spanclass="name">random</span><spanclass="operator">.</span><spanclass="name">randint</span><spanclass="punctuation">(</span><spanclass="literal number integer">0</span><spanclass="punctuation">,</span><spanclass="literal number integer">10</span><spanclass="punctuation">,(</span><spanclass="literal number integer">5</span><spanclass="punctuation">,</span><spanclass="literal number integer">5</span><spanclass="punctuation">)))</span>
<spanclass="name">S</span><spanclass="punctuation">[</span><spanclass="literal number integer">2</span><spanclass="punctuation">,</span><spanclass="literal number integer">3</span><spanclass="punctuation">]</span><spanclass="operator">=</span><spanclass="literal number integer">42</span>
<spanclass="name">p</span><spanclass="punctuation">,</span><spanclass="name">n</span><spanclass="operator">=</span><spanclass="literal number integer">10</span><spanclass="punctuation">,</span><spanclass="literal number integer">20</span>
<spanclass="name">V</span><spanclass="operator">=</span><spanclass="name">np</span><spanclass="operator">.</span><spanclass="name">ones</span><spanclass="punctuation">((</span><spanclass="name">p</span><spanclass="punctuation">,</span><spanclass="name">n</span><spanclass="punctuation">,</span><spanclass="literal number integer">1</span><spanclass="punctuation">))</span>
<spanclass="name">S</span><spanclass="operator">=</span><spanclass="name">np</span><spanclass="operator">.</span><spanclass="name">tensordot</span><spanclass="punctuation">(</span><spanclass="name">M</span><spanclass="punctuation">,</span><spanclass="name">V</span><spanclass="punctuation">,</span><spanclass="name">axes</span><spanclass="operator">=</span><spanclass="punctuation">[[</span><spanclass="literal number integer">0</span><spanclass="punctuation">,</span><spanclass="literal number integer">2</span><spanclass="punctuation">],</span><spanclass="punctuation">[</span><spanclass="literal number integer">0</span><spanclass="punctuation">,</span><spanclass="literal number integer">1</span><spanclass="punctuation">]])</span>
<spanclass="name">Z</span><spanclass="operator">=</span><spanclass="name">np</span><spanclass="operator">.</span><spanclass="name">ones</span><spanclass="punctuation">(</span><spanclass="literal number integer">16</span><spanclass="punctuation">,</span><spanclass="literal number integer">16</span><spanclass="punctuation">)</span>
<spanclass="name">k</span><spanclass="operator">=</span><spanclass="literal number integer">4</span>
<spanclass="name">S</span><spanclass="operator">=</span><spanclass="name">np</span><spanclass="operator">.</span><spanclass="name">add</span><spanclass="operator">.</span><spanclass="name">reduceat</span><spanclass="punctuation">(</span><spanclass="name">np</span><spanclass="operator">.</span><spanclass="name">add</span><spanclass="operator">.</span><spanclass="name">reduceat</span><spanclass="punctuation">(</span><spanclass="name">Z</span><spanclass="punctuation">,</span><spanclass="name">np</span><spanclass="operator">.</span><spanclass="name">arange</span><spanclass="punctuation">(</span><spanclass="literal number integer">0</span><spanclass="punctuation">,</span><spanclass="name">Z</span><spanclass="operator">.</span><spanclass="name">shape</span><spanclass="punctuation">[</span><spanclass="literal number integer">0</span><spanclass="punctuation">],</span><spanclass="name">k</span><spanclass="punctuation">),</span><spanclass="name">axis</span><spanclass="operator">=</span><spanclass="literal number integer">0</span><spanclass="punctuation">),</span>
<spanclass="name">np</span><spanclass="operator">.</span><spanclass="name">arange</span><spanclass="punctuation">(</span><spanclass="literal number integer">0</span><spanclass="punctuation">,</span><spanclass="name">Z</span><spanclass="operator">.</span><spanclass="name">shape</span><spanclass="punctuation">[</span><spanclass="literal number integer">1</span><spanclass="punctuation">],</span><spanclass="name">k</span><spanclass="punctuation">),</span><spanclass="name">axis</span><spanclass="operator">=</span><spanclass="literal number integer">1</span><spanclass="punctuation">)</span>
<spanclass="name">N</span><spanclass="operator">=</span><spanclass="punctuation">(</span><spanclass="name">Z</span><spanclass="punctuation">[</span><spanclass="literal number integer">0</span><spanclass="punctuation">:</span><spanclass="operator">-</span><spanclass="literal number integer">2</span><spanclass="punctuation">,</span><spanclass="literal number integer">0</span><spanclass="punctuation">:</span><spanclass="operator">-</span><spanclass="literal number integer">2</span><spanclass="punctuation">]</span><spanclass="operator">+</span><spanclass="name">Z</span><spanclass="punctuation">[</span><spanclass="literal number integer">0</span><spanclass="punctuation">:</span><spanclass="operator">-</span><spanclass="literal number integer">2</span><spanclass="punctuation">,</span><spanclass="literal number integer">1</span><spanclass="punctuation">:</span><spanclass="operator">-</span><spanclass="literal number integer">1</span><spanclass="punctuation">]</span><spanclass="operator">+</span><spanclass="name">Z</span><spanclass="punctuation">[</span><spanclass="literal number integer">0</span><spanclass="punctuation">:</span><spanclass="operator">-</span><spanclass="literal number integer">2</span><spanclass="punctuation">,</span><spanclass="literal number integer">2</span><spanclass="punctuation">:]</span><spanclass="operator">+</span>
<spanclass="name">Z</span><spanclass="punctuation">[</span><spanclass="literal number integer">1</span><spanclass="punctuation">:</span><spanclass="operator">-</span><spanclass="literal number integer">1</span><spanclass="punctuation">,</span><spanclass="literal number integer">0</span><spanclass="punctuation">:</span><spanclass="operator">-</span><spanclass="literal number integer">2</span><spanclass="punctuation">]</span><spanclass="operator">+</span><spanclass="name">Z</span><spanclass="punctuation">[</span><spanclass="literal number integer">1</span><spanclass="punctuation">:</span><spanclass="operator">-</span><spanclass="literal number integer">1</span><spanclass="punctuation">,</span><spanclass="literal number integer">2</span><spanclass="punctuation">:]</span><spanclass="operator">+</span>
<spanclass="name">Z</span><spanclass="punctuation">[</span><spanclass="literal number integer">2</span><spanclass="punctuation">:</span><spanclass="punctuation">,</span><spanclass="literal number integer">0</span><spanclass="punctuation">:</span><spanclass="operator">-</span><spanclass="literal number integer">2</span><spanclass="punctuation">]</span><spanclass="operator">+</span><spanclass="name">Z</span><spanclass="punctuation">[</span><spanclass="literal number integer">2</span><spanclass="punctuation">:</span><spanclass="punctuation">,</span><spanclass="literal number integer">1</span><spanclass="punctuation">:</span><spanclass="operator">-</span><spanclass="literal number integer">1</span><spanclass="punctuation">]</span><spanclass="operator">+</span><spanclass="name">Z</span><spanclass="punctuation">[</span><spanclass="literal number integer">2</span><spanclass="punctuation">:</span><spanclass="punctuation">,</span><spanclass="literal number integer">2</span><spanclass="punctuation">:])</span>
<spanclass="name">birth</span><spanclass="operator">=</span><spanclass="punctuation">(</span><spanclass="name">N</span><spanclass="operator">==</span><spanclass="literal number integer">3</span><spanclass="punctuation">)</span><spanclass="operator">&</span><spanclass="punctuation">(</span><spanclass="name">Z</span><spanclass="punctuation">[</span><spanclass="literal number integer">1</span><spanclass="punctuation">:</span><spanclass="operator">-</span><spanclass="literal number integer">1</span><spanclass="punctuation">,</span><spanclass="literal number integer">1</span><spanclass="punctuation">:</span><spanclass="operator">-</span><spanclass="literal number integer">1</span><spanclass="punctuation">]</span><spanclass="operator">==</span><spanclass="literal number integer">0</span><spanclass="punctuation">)</span>
<spanclass="name">survive</span><spanclass="operator">=</span><spanclass="punctuation">((</span><spanclass="name">N</span><spanclass="operator">==</span><spanclass="literal number integer">2</span><spanclass="punctuation">)</span><spanclass="operator">|</span><spanclass="punctuation">(</span><spanclass="name">N</span><spanclass="operator">==</span><spanclass="literal number integer">3</span><spanclass="punctuation">))</span><spanclass="operator">&</span><spanclass="punctuation">(</span><spanclass="name">Z</span><spanclass="punctuation">[</span><spanclass="literal number integer">1</span><spanclass="punctuation">:</span><spanclass="operator">-</span><spanclass="literal number integer">1</span><spanclass="punctuation">,</span><spanclass="literal number integer">1</span><spanclass="punctuation">:</span><spanclass="operator">-</span><spanclass="literal number integer">1</span><spanclass="punctuation">]</span><spanclass="operator">==</span><spanclass="literal number integer">1</span><spanclass="punctuation">)</span>
<spanclass="name">Z</span><spanclass="punctuation">[</span><spanclass="operator">...</span><spanclass="punctuation">]</span><spanclass="operator">=</span><spanclass="literal number integer">0</span>
<spanclass="name">Z</span><spanclass="punctuation">[</span><spanclass="literal number integer">1</span><spanclass="punctuation">:</span><spanclass="operator">-</span><spanclass="literal number integer">1</span><spanclass="punctuation">,</span><spanclass="literal number integer">1</span><spanclass="punctuation">:</span><spanclass="operator">-</span><spanclass="literal number integer">1</span><spanclass="punctuation">][</span><spanclass="name">birth</span><spanclass="operator">|</span><spanclass="name">survive</span><spanclass="punctuation">]</span><spanclass="operator">=</span><spanclass="literal number integer">1</span>
<spanclass="name">Z</span><spanclass="operator">=</span><spanclass="name">np</span><spanclass="operator">.</span><spanclass="name">random</span><spanclass="operator">.</span><spanclass="name">randint</span><spanclass="punctuation">(</span><spanclass="literal number integer">0</span><spanclass="punctuation">,</span><spanclass="literal number integer">2</span><spanclass="punctuation">,(</span><spanclass="literal number integer">50</span><spanclass="punctuation">,</span><spanclass="literal number integer">50</span><spanclass="punctuation">))</span>
<spanclass="keyword">for</span><spanclass="name">i</span><spanclass="operator word">in</span><spanclass="name builtin">range</span><spanclass="punctuation">(</span><spanclass="literal number integer">100</span><spanclass="punctuation">):</span><spanclass="name">Z</span><spanclass="operator">=</span><spanclass="name">iterate</span><spanclass="punctuation">(</span><spanclass="name">Z</span><spanclass="punctuation">)</span>
<li><pclass="first">How to get the n largest values of an array (★★★)</p>
<preclass="code python literal-block">
<spanclass="name">Z</span><spanclass="operator">=</span><spanclass="name">np</span><spanclass="operator">.</span><spanclass="name">arange</span><spanclass="punctuation">(</span><spanclass="literal number integer">10000</span><spanclass="punctuation">)</span>
<spanclass="name">ix</span><spanclass="operator">=</span><spanclass="name">ix</span><spanclass="operator">.</span><spanclass="name">reshape</span><spanclass="punctuation">(</span><spanclass="name builtin">len</span><spanclass="punctuation">(</span><spanclass="name">arrays</span><spanclass="punctuation">),</span><spanclass="operator">-</span><spanclass="literal number integer">1</span><spanclass="punctuation">)</span><spanclass="operator">.</span><spanclass="name">T</span>
<spanclass="keyword">print</span><spanclass="punctuation">(</span><spanclass="name">cartesian</span><spanclass="punctuation">(([</span><spanclass="literal number integer">1</span><spanclass="punctuation">,</span><spanclass="literal number integer">2</span><spanclass="punctuation">,</span><spanclass="literal number integer">3</span><spanclass="punctuation">],</span><spanclass="punctuation">[</span><spanclass="literal number integer">4</span><spanclass="punctuation">,</span><spanclass="literal number integer">5</span><spanclass="punctuation">],</span><spanclass="punctuation">[</span><spanclass="literal number integer">6</span><spanclass="punctuation">,</span><spanclass="literal number integer">7</span><spanclass="punctuation">])))</span>
<spanclass="name">Z</span><spanclass="operator">=</span><spanclass="name">np</span><spanclass="operator">.</span><spanclass="name">array</span><spanclass="punctuation">([(</span><spanclass="literal string double">"Hello"</span><spanclass="punctuation">,</span><spanclass="literal number float">2.5</span><spanclass="punctuation">,</span><spanclass="literal number integer">3</span><spanclass="punctuation">),</span>
<spanclass="punctuation">(</span><spanclass="literal string double">"World"</span><spanclass="punctuation">,</span><spanclass="literal number float">3.6</span><spanclass="punctuation">,</span><spanclass="literal number integer">2</span><spanclass="punctuation">)])</span>
<spanclass="name">x</span><spanclass="operator">=</span><spanclass="name">np</span><spanclass="operator">.</span><spanclass="name">random</span><spanclass="operator">.</span><spanclass="name">rand</span><spanclass="punctuation">(</span><spanclass="literal number float">5e7</span><spanclass="punctuation">)</span>
<spanclass="operator">%</span><spanclass="name">timeit</span><spanclass="name">np</span><spanclass="operator">.</span><spanclass="name">power</span><spanclass="punctuation">(</span><spanclass="name">x</span><spanclass="punctuation">,</span><spanclass="literal number integer">3</span><spanclass="punctuation">)</span>
<spanclass="literal number integer">1</span><spanclass="name">loops</span><spanclass="punctuation">,</span><spanclass="name">best</span><spanclass="name">of</span><spanclass="literal number integer">3</span><spanclass="punctuation">:</span><spanclass="literal number integer">574</span><spanclass="name">ms</span><spanclass="name">per</span><spanclass="name">loop</span>
<spanclass="literal number integer">1</span><spanclass="name">loops</span><spanclass="punctuation">,</span><spanclass="name">best</span><spanclass="name">of</span><spanclass="literal number integer">3</span><spanclass="punctuation">:</span><spanclass="literal number integer">429</span><spanclass="name">ms</span><spanclass="name">per</span><spanclass="name">loop</span>
<spanclass="literal number integer">1</span><spanclass="name">loops</span><spanclass="punctuation">,</span><spanclass="name">best</span><spanclass="name">of</span><spanclass="literal number integer">3</span><spanclass="punctuation">:</span><spanclass="literal number integer">244</span><spanclass="name">ms</span><spanclass="name">per</span><spanclass="name">loop</span>
<spanclass="name">A</span><spanclass="operator">=</span><spanclass="name">np</span><spanclass="operator">.</span><spanclass="name">random</span><spanclass="operator">.</span><spanclass="name">randint</span><spanclass="punctuation">(</span><spanclass="literal number integer">0</span><spanclass="punctuation">,</span><spanclass="literal number integer">5</span><spanclass="punctuation">,(</span><spanclass="literal number integer">8</span><spanclass="punctuation">,</span><spanclass="literal number integer">3</span><spanclass="punctuation">))</span>
<spanclass="name">B</span><spanclass="operator">=</span><spanclass="name">np</span><spanclass="operator">.</span><spanclass="name">random</span><spanclass="operator">.</span><spanclass="name">randint</span><spanclass="punctuation">(</span><spanclass="literal number integer">0</span><spanclass="punctuation">,</span><spanclass="literal number integer">5</span><spanclass="punctuation">,(</span><spanclass="literal number integer">2</span><spanclass="punctuation">,</span><spanclass="literal number integer">2</span><spanclass="punctuation">))</span>
<spanclass="name">rows</span><spanclass="operator">=</span><spanclass="punctuation">(</span><spanclass="name">C</span><spanclass="operator">.</span><spanclass="name">sum</span><spanclass="punctuation">(</span><spanclass="name">axis</span><spanclass="operator">=</span><spanclass="punctuation">(</span><spanclass="literal number integer">1</span><spanclass="punctuation">,</span><spanclass="literal number integer">2</span><spanclass="punctuation">,</span><spanclass="literal number integer">3</span><spanclass="punctuation">))</span><spanclass="operator">>=</span><spanclass="name">B</span><spanclass="operator">.</span><spanclass="name">shape</span><spanclass="punctuation">[</span><spanclass="literal number integer">1</span><spanclass="punctuation">])</span><spanclass="operator">.</span><spanclass="name">nonzero</span><spanclass="punctuation">()[</span><spanclass="literal number integer">0</span><spanclass="punctuation">]</span>
<spanclass="name">Z</span><spanclass="operator">=</span><spanclass="name">np</span><spanclass="operator">.</span><spanclass="name">random</span><spanclass="operator">.</span><spanclass="name">randint</span><spanclass="punctuation">(</span><spanclass="literal number integer">0</span><spanclass="punctuation">,</span><spanclass="literal number integer">5</span><spanclass="punctuation">,(</span><spanclass="literal number integer">10</span><spanclass="punctuation">,</span><spanclass="literal number integer">3</span><spanclass="punctuation">))</span>
<spanclass="name">E</span><spanclass="operator">=</span><spanclass="name">np</span><spanclass="operator">.</span><spanclass="name">logical_and</span><spanclass="operator">.</span><spanclass="name">reduce</span><spanclass="punctuation">(</span><spanclass="name">Z</span><spanclass="punctuation">[:,</span><spanclass="literal number integer">1</span><spanclass="punctuation">:]</span><spanclass="operator">==</span><spanclass="name">Z</span><spanclass="punctuation">[:,:</span><spanclass="operator">-</span><spanclass="literal number integer">1</span><spanclass="punctuation">],</span><spanclass="name">axis</span><spanclass="operator">=</span><spanclass="literal number integer">1</span><spanclass="punctuation">)</span>
<spanclass="name">I</span><spanclass="operator">=</span><spanclass="name">np</span><spanclass="operator">.</span><spanclass="name">array</span><spanclass="punctuation">([</span><spanclass="literal number integer">0</span><spanclass="punctuation">,</span><spanclass="literal number integer">1</span><spanclass="punctuation">,</span><spanclass="literal number integer">2</span><spanclass="punctuation">,</span><spanclass="literal number integer">3</span><spanclass="punctuation">,</span><spanclass="literal number integer">15</span><spanclass="punctuation">,</span><spanclass="literal number integer">16</span><spanclass="punctuation">,</span><spanclass="literal number integer">32</span><spanclass="punctuation">,</span><spanclass="literal number integer">64</span><spanclass="punctuation">,</span><spanclass="literal number integer">128</span><spanclass="punctuation">])</span>
<spanclass="name">B</span><spanclass="operator">=</span><spanclass="punctuation">((</span><spanclass="name">I</span><spanclass="operator">.</span><spanclass="name">reshape</span><spanclass="punctuation">(</span><spanclass="operator">-</span><spanclass="literal number integer">1</span><spanclass="punctuation">,</span><spanclass="literal number integer">1</span><spanclass="punctuation">)</span><spanclass="operator">&</span><spanclass="punctuation">(</span><spanclass="literal number integer">2</span><spanclass="operator">**</span><spanclass="name">np</span><spanclass="operator">.</span><spanclass="name">arange</span><spanclass="punctuation">(</span><spanclass="literal number integer">8</span><spanclass="punctuation">)))</span><spanclass="operator">!=</span><spanclass="literal number integer">0</span><spanclass="punctuation">)</span><spanclass="operator">.</span><spanclass="name">astype</span><spanclass="punctuation">(</span><spanclass="name builtin">int</span><spanclass="punctuation">)</span>
<spanclass="keyword">print</span><spanclass="punctuation">(</span><spanclass="name">B</span><spanclass="punctuation">[:,::</span><spanclass="operator">-</span><spanclass="literal number integer">1</span><spanclass="punctuation">])</span>
<spanclass="name">I</span><spanclass="operator">=</span><spanclass="name">np</span><spanclass="operator">.</span><spanclass="name">array</span><spanclass="punctuation">([</span><spanclass="literal number integer">0</span><spanclass="punctuation">,</span><spanclass="literal number integer">1</span><spanclass="punctuation">,</span><spanclass="literal number integer">2</span><spanclass="punctuation">,</span><spanclass="literal number integer">3</span><spanclass="punctuation">,</span><spanclass="literal number integer">15</span><spanclass="punctuation">,</span><spanclass="literal number integer">16</span><spanclass="punctuation">,</span><spanclass="literal number integer">32</span><spanclass="punctuation">,</span><spanclass="literal number integer">64</span><spanclass="punctuation">,</span><spanclass="literal number integer">128</span><spanclass="punctuation">],</span><spanclass="name">dtype</span><spanclass="operator">=</span><spanclass="name">np</span><spanclass="operator">.</span><spanclass="name">uint8</span><spanclass="punctuation">)</span>
<spanclass="keyword">print</span><spanclass="punctuation">(</span><spanclass="name">np</span><spanclass="operator">.</span><spanclass="name">unpackbits</span><spanclass="punctuation">(</span><spanclass="name">I</span><spanclass="punctuation">[:,</span><spanclass="name">np</span><spanclass="operator">.</span><spanclass="name">newaxis</span><spanclass="punctuation">],</span><spanclass="name">axis</span><spanclass="operator">=</span><spanclass="literal number integer">1</span><spanclass="punctuation">))</span>
<spanclass="name">Z</span><spanclass="operator">=</span><spanclass="name">np</span><spanclass="operator">.</span><spanclass="name">random</span><spanclass="operator">.</span><spanclass="name">randint</span><spanclass="punctuation">(</span><spanclass="literal number integer">0</span><spanclass="punctuation">,</span><spanclass="literal number integer">2</span><spanclass="punctuation">,(</span><spanclass="literal number integer">6</span><spanclass="punctuation">,</span><spanclass="literal number integer">3</span><spanclass="punctuation">))</span>
<spanclass="name">T</span><spanclass="operator">=</span><spanclass="name">np</span><spanclass="operator">.</span><spanclass="name">ascontiguousarray</span><spanclass="punctuation">(</span><spanclass="name">Z</span><spanclass="punctuation">)</span><spanclass="operator">.</span><spanclass="name">view</span><spanclass="punctuation">(</span><spanclass="name">np</span><spanclass="operator">.</span><spanclass="name">dtype</span><spanclass="punctuation">((</span><spanclass="name">np</span><spanclass="operator">.</span><spanclass="name">void</span><spanclass="punctuation">,</span><spanclass="name">Z</span><spanclass="operator">.</span><spanclass="name">dtype</span><spanclass="operator">.</span><spanclass="name">itemsize</span><spanclass="operator">*</span><spanclass="name">Z</span><spanclass="operator">.</span><spanclass="name">shape</span><spanclass="punctuation">[</span><spanclass="literal number integer">1</span><spanclass="punctuation">])))</span>
<spanclass="name">phi</span><spanclass="operator">=</span><spanclass="name">np</span><spanclass="operator">.</span><spanclass="name">arange</span><spanclass="punctuation">(</span><spanclass="literal number integer">0</span><spanclass="punctuation">,</span><spanclass="literal number integer">10</span><spanclass="operator">*</span><spanclass="name">np</span><spanclass="operator">.</span><spanclass="name">pi</span><spanclass="punctuation">,</span><spanclass="literal number float">0.1</span><spanclass="punctuation">)</span>
<spanclass="name">a</span><spanclass="operator">=</span><spanclass="literal number integer">1</span>
<spanclass="name">dr</span><spanclass="operator">=</span><spanclass="punctuation">(</span><spanclass="name">np</span><spanclass="operator">.</span><spanclass="name">diff</span><spanclass="punctuation">(</span><spanclass="name">x</span><spanclass="punctuation">)</span><spanclass="operator">**</span><spanclass="literal number integer">2</span><spanclass="operator">+</span><spanclass="name">np</span><spanclass="operator">.</span><spanclass="name">diff</span><spanclass="punctuation">(</span><spanclass="name">y</span><spanclass="punctuation">)</span><spanclass="operator">**</span><spanclass="literal number integer">2</span><spanclass="punctuation">)</span><spanclass="operator">**.</span><spanclass="literal number integer">5</span><spanclass="comment single"># segment lengths</span>
<spanclass="name">r</span><spanclass="punctuation">[</span><spanclass="literal number integer">1</span><spanclass="punctuation">:]</span><spanclass="operator">=</span><spanclass="name">np</span><spanclass="operator">.</span><spanclass="name">cumsum</span><spanclass="punctuation">(</span><spanclass="name">dr</span><spanclass="punctuation">)</span><spanclass="comment single"># integrate path</span>
<spanclass="name">r_int</span><spanclass="operator">=</span><spanclass="name">np</span><spanclass="operator">.</span><spanclass="name">linspace</span><spanclass="punctuation">(</span><spanclass="literal number integer">0</span><spanclass="punctuation">,</span><spanclass="name">r</span><spanclass="operator">.</span><spanclass="name">max</span><spanclass="punctuation">(),</span><spanclass="literal number integer">200</span><spanclass="punctuation">)</span><spanclass="comment single"># regular spaced path</span>
<spanclass="name">X</span><spanclass="operator">=</span><spanclass="name">np</span><spanclass="operator">.</span><spanclass="name">asarray</span><spanclass="punctuation">([[</span><spanclass="literal number float">1.0</span><spanclass="punctuation">,</span><spanclass="literal number float">0.0</span><spanclass="punctuation">,</span><spanclass="literal number float">3.0</span><spanclass="punctuation">,</span><spanclass="literal number float">8.0</span><spanclass="punctuation">],</span>
<spanclass="punctuation">[</span><spanclass="literal number float">2.0</span><spanclass="punctuation">,</span><spanclass="literal number float">0.0</span><spanclass="punctuation">,</span><spanclass="literal number float">1.0</span><spanclass="punctuation">,</span><spanclass="literal number float">1.0</span><spanclass="punctuation">],</span>
<spanclass="punctuation">[</span><spanclass="literal number float">1.5</span><spanclass="punctuation">,</span><spanclass="literal number float">2.5</span><spanclass="punctuation">,</span><spanclass="literal number float">1.0</span><spanclass="punctuation">,</span><spanclass="literal number float">0.0</span><spanclass="punctuation">]])</span>
<spanclass="name">n</span><spanclass="operator">=</span><spanclass="literal number integer">4</span>
<spanclass="name">M</span><spanclass="operator">=</span><spanclass="name">np</span><spanclass="operator">.</span><spanclass="name">logical_and</span><spanclass="operator">.</span><spanclass="name">reduce</span><spanclass="punctuation">(</span><spanclass="name">np</span><spanclass="operator">.</span><spanclass="name">mod</span><spanclass="punctuation">(</span><spanclass="name">X</span><spanclass="punctuation">,</span><spanclass="literal number integer">1</span><spanclass="punctuation">)</span><spanclass="operator">==</span><spanclass="literal number integer">0</span><spanclass="punctuation">,</span><spanclass="name">axis</span><spanclass="operator">=-</span><spanclass="literal number integer">1</span><spanclass="punctuation">)</span>
<spanclass="name">M</span><spanclass="operator">&=</span><spanclass="punctuation">(</span><spanclass="name">X</span><spanclass="operator">.</span><spanclass="name">sum</span><spanclass="punctuation">(</span><spanclass="name">axis</span><spanclass="operator">=-</span><spanclass="literal number integer">1</span><spanclass="punctuation">)</span><spanclass="operator">==</span><spanclass="name">n</span><spanclass="punctuation">)</span>
<li><pclass="first">Compute bootstrapped 95% confidence intervals for the mean of a 1D array X (i.e., resample the elements of an array with replacement N times, compute the mean of each sample, and then compute percentiles over the means). (★★★)</p>
<spanclass="name">X</span><spanclass="operator">=</span><spanclass="name">np</span><spanclass="operator">.</span><spanclass="name">random</span><spanclass="operator">.</span><spanclass="name">randn</span><spanclass="punctuation">(</span><spanclass="literal number integer">100</span><spanclass="punctuation">)</span><spanclass="comment single"># random 1D array</span>
<spanclass="name">N</span><spanclass="operator">=</span><spanclass="literal number integer">1000</span><spanclass="comment single"># number of bootstrap samples</span>
<spanclass="name">idx</span><spanclass="operator">=</span><spanclass="name">np</span><spanclass="operator">.</span><spanclass="name">random</span><spanclass="operator">.</span><spanclass="name">randint</span><spanclass="punctuation">(</span><spanclass="literal number integer">0</span><spanclass="punctuation">,</span><spanclass="name">X</span><spanclass="operator">.</span><spanclass="name">size</span><spanclass="punctuation">,</span><spanclass="punctuation">(</span><spanclass="name">N</span><spanclass="punctuation">,</span><spanclass="name">X</span><spanclass="operator">.</span><spanclass="name">size</span><spanclass="punctuation">))</span>
<spanclass="name">means</span><spanclass="operator">=</span><spanclass="name">X</span><spanclass="punctuation">[</span><spanclass="name">idx</span><spanclass="punctuation">]</span><spanclass="operator">.</span><spanclass="name">mean</span><spanclass="punctuation">(</span><spanclass="name">axis</span><spanclass="operator">=</span><spanclass="literal number integer">1</span><spanclass="punctuation">)</span>
<spanclass="name">confint</span><spanclass="operator">=</span><spanclass="name">np</span><spanclass="operator">.</span><spanclass="name">percentile</span><spanclass="punctuation">(</span><spanclass="name">means</span><spanclass="punctuation">,</span><spanclass="punctuation">[</span><spanclass="literal number float">2.5</span><spanclass="punctuation">,</span><spanclass="literal number float">97.5</span><spanclass="punctuation">])</span>