Skip to content

Commit b91cb1b

Browse files
committed
New exercise using nditer. And we're done, we've got 100 exercises \!
1 parent f1059bd commit b91cb1b

File tree

2 files changed

+22
-1
lines changed

2 files changed

+22
-1
lines changed

README.html

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -511,6 +511,16 @@ <h2 class="subtitle" id="a-joint-effort-of-the-numpy-community">A joint effort o
511511
<span class="keyword">print</span><span class="punctuation">(</span><span class="name">m</span><span class="punctuation">)</span>
512512
</pre>
513513
</li>
514+
<li><p class="first">Considering two arrays with shape (1,3) and (3,1), how to compute their sum
515+
using an iterator? (★★☆)</p>
516+
<pre class="code python literal-block">
517+
<span class="name">A</span> <span class="operator">=</span> <span class="name">np</span><span class="operator">.</span><span class="name">arange</span><span class="punctuation">(</span><span class="literal number integer">3</span><span class="punctuation">)</span><span class="operator">.</span><span class="name">reshape</span><span class="punctuation">(</span><span class="literal number integer">3</span><span class="punctuation">,</span><span class="literal number integer">1</span><span class="punctuation">)</span>
518+
<span class="name">B</span> <span class="operator">=</span> <span class="name">np</span><span class="operator">.</span><span class="name">arange</span><span class="punctuation">(</span><span class="literal number integer">3</span><span class="punctuation">)</span><span class="operator">.</span><span class="name">reshape</span><span class="punctuation">(</span><span class="literal number integer">1</span><span class="punctuation">,</span><span class="literal number integer">3</span><span class="punctuation">)</span>
519+
<span class="name">it</span> <span class="operator">=</span> <span class="name">np</span><span class="operator">.</span><span class="name">nditer</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 builtin pseudo">None</span><span class="punctuation">]):</span>
520+
<span class="keyword">for</span> <span class="name">x</span><span class="punctuation">,</span><span class="name">y</span><span class="punctuation">,</span><span class="name">z</span> <span class="operator word">in</span> <span class="name">it</span><span class="punctuation">:</span> <span class="name">z</span><span class="punctuation">[</span><span class="operator">...</span><span class="punctuation">]</span> <span class="operator">=</span> <span class="name">x</span> <span class="operator">+</span> <span class="name">y</span>
521+
<span class="name">C</span> <span class="operator">=</span> <span class="name">it</span><span class="operator">.</span><span class="name">operands</span><span class="punctuation">[</span><span class="literal number integer">2</span><span class="punctuation">]</span>
522+
</pre>
523+
</li>
514524
<li><p class="first">Create an array class that has a <cite>name</cite> attribute (★★☆)</p>
515525
<pre class="code python literal-block">
516526
<span class="keyword">class</span> <span class="name class">NamedArray</span><span class="punctuation">(</span><span class="name">np</span><span class="operator">.</span><span class="name">ndarray</span><span class="punctuation">):</span>

README.rst

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -611,7 +611,18 @@ Thanks to Michiaki Ariga, there is now a
611611
m = Z.flat[np.abs(Z - z).argmin()]
612612
print(m)
613613
614-
614+
#. Considering two arrays with shape (1,3) and (3,1), how to compute their sum
615+
using an iterator? (★★☆)
616+
617+
.. code-block:: python
618+
619+
A = np.arange(3).reshape(3,1)
620+
B = np.arange(3).reshape(1,3)
621+
it = np.nditer([A,B,None]):
622+
for x,y,z in it: z[...] = x + y
623+
C = it.operands[2]
624+
625+
615626
#. Create an array class that has a `name` attribute (★★☆)
616627

617628
.. code-block:: python

0 commit comments

Comments
 (0)