Added inplace operations exercise

This commit is contained in:
Nicolas P. Rougier 2016-07-14 19:36:32 -05:00
parent 6223625ee9
commit e8dd40096d
2 changed files with 23 additions and 0 deletions

View File

@ -238,6 +238,17 @@ python -c <span class="literal string double">&quot;import numpy; numpy.info(num
<span class="name">np</span><span class="operator">.</span><span class="name">sqrt</span><span class="punctuation">(</span><span class="operator">-</span><span class="literal number integer">1</span><span class="punctuation">)</span> <span class="operator">==</span> <span class="name">np</span><span class="operator">.</span><span class="name">emath</span><span class="operator">.</span><span class="name">sqrt</span><span class="punctuation">(</span><span class="operator">-</span><span class="literal number integer">1</span><span class="punctuation">)</span>
</pre>
</li>
<li><p class="first">How to compute ((A+B)*(-A/2)) in place (without copy)? (★★☆)</p>
<pre class="code python literal-block">
<span class="name">A</span> <span class="operator">=</span> <span class="name">np</span><span class="operator">.</span><span class="name">ones</span><span class="punctuation">(</span><span class="literal number integer">3</span><span class="punctuation">)</span><span class="operator">*</span><span class="literal number integer">1</span>
<span class="name">B</span> <span class="operator">=</span> <span class="name">np</span><span class="operator">.</span><span class="name">ones</span><span class="punctuation">(</span><span class="literal number integer">3</span><span class="punctuation">)</span><span class="operator">*</span><span class="literal number integer">2</span>
<span class="name">C</span> <span class="operator">=</span> <span class="name">np</span><span class="operator">.</span><span class="name">ones</span><span class="punctuation">(</span><span class="literal number integer">3</span><span class="punctuation">)</span><span class="operator">*</span><span class="literal number integer">3</span>
<span class="name">np</span><span class="operator">.</span><span class="name">add</span><span class="punctuation">(</span><span class="name">A</span><span class="punctuation">,</span><span class="name">B</span><span class="punctuation">,</span><span class="name">out</span><span class="operator">=</span><span class="name">B</span><span class="punctuation">)</span>
<span class="name">np</span><span class="operator">.</span><span class="name">divide</span><span class="punctuation">(</span><span class="name">A</span><span class="punctuation">,</span><span class="literal number integer">2</span><span class="punctuation">,</span><span class="name">out</span><span class="operator">=</span><span class="name">A</span><span class="punctuation">)</span>
<span class="name">np</span><span class="operator">.</span><span class="name">negative</span><span class="punctuation">(</span><span class="name">A</span><span class="punctuation">,</span><span class="name">out</span><span class="operator">=</span><span class="name">A</span><span class="punctuation">)</span>
<span class="name">np</span><span class="operator">.</span><span class="name">multiply</span><span class="punctuation">(</span><span class="name">A</span><span class="punctuation">,</span><span class="name">B</span><span class="punctuation">,</span><span class="name">out</span><span class="operator">=</span><span class="name">A</span><span class="punctuation">)</span>
</pre>
</li>
<li><p class="first">Extract the integer part of a random array using 5 different methods (★★☆)</p>
<pre class="code python literal-block">
<span class="name">Z</span> <span class="operator">=</span> <span class="name">np</span><span class="operator">.</span><span class="name">random</span><span class="operator">.</span><span class="name">uniform</span><span class="punctuation">(</span><span class="literal number integer">0</span><span class="punctuation">,</span><span class="literal number integer">10</span><span class="punctuation">,</span><span class="literal number integer">10</span><span class="punctuation">)</span>

View File

@ -284,6 +284,18 @@ Thanks to Michiaki Ariga, there is now a
np.sqrt(-1) == np.emath.sqrt(-1)
#. How to compute ((A+B)*(-A/2)) in place (without copy)? (★★☆)
.. code-block:: python
A = np.ones(3)*1
B = np.ones(3)*2
C = np.ones(3)*3
np.add(A,B,out=B)
np.divide(A,2,out=A)
np.negative(A,out=A)
np.multiply(A,B,out=A)
#. Extract the integer part of a random array using 5 different methods (★★☆)
.. code-block:: python