Added some exercises
This commit is contained in:
91
README.html
91
README.html
@@ -4,12 +4,12 @@
|
|||||||
<head>
|
<head>
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||||
<meta name="generator" content="Docutils 0.12: http://docutils.sourceforge.net/" />
|
<meta name="generator" content="Docutils 0.12: http://docutils.sourceforge.net/" />
|
||||||
<title>100 numpy exercises</title>
|
<title>100 numpy exercises</title>
|
||||||
<link rel="stylesheet" href="numpy.css" type="text/css" />
|
<link rel="stylesheet" href="numpy.css" type="text/css" />
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div class="document" id="numpy-exercises">
|
<div class="document" id="numpy-exercises">
|
||||||
<h1 class="title">100 numpy exercises</h1>
|
<h1 class="title">100 numpy exercises</h1>
|
||||||
<h2 class="subtitle" id="a-joint-effort-of-the-numpy-community">A joint effort of the numpy community</h2>
|
<h2 class="subtitle" id="a-joint-effort-of-the-numpy-community">A joint effort of the numpy community</h2>
|
||||||
|
|
||||||
<p>The goal is both to offer a quick reference for new and old users and to
|
<p>The goal is both to offer a quick reference for new and old users and to
|
||||||
@@ -158,6 +158,14 @@ python -c <span class="literal string double">"import numpy; numpy.info(num
|
|||||||
<span class="keyword">print</span><span class="punctuation">(</span><span class="name">Z</span><span class="punctuation">)</span>
|
<span class="keyword">print</span><span class="punctuation">(</span><span class="name">Z</span><span class="punctuation">)</span>
|
||||||
</pre>
|
</pre>
|
||||||
</li>
|
</li>
|
||||||
|
<li><p class="first">Create a custom dtype that describes a color as four unisgned bytes (RGBA) (★☆☆)</p>
|
||||||
|
<pre class="code python literal-block">
|
||||||
|
<span class="name">color</span> <span class="operator">=</span> <span class="name">np</span><span class="operator">.</span><span class="name">dtype</span><span class="punctuation">([(</span><span class="literal string double">"r"</span><span class="punctuation">,</span> <span class="name">np</span><span class="operator">.</span><span class="name">ubyte</span><span class="punctuation">,</span> <span class="literal number integer">1</span><span class="punctuation">),</span>
|
||||||
|
<span class="punctuation">(</span><span class="literal string double">"g"</span><span class="punctuation">,</span> <span class="name">np</span><span class="operator">.</span><span class="name">ubyte</span><span class="punctuation">,</span> <span class="literal number integer">1</span><span class="punctuation">),</span>
|
||||||
|
<span class="punctuation">(</span><span class="literal string double">"b"</span><span class="punctuation">,</span> <span class="name">np</span><span class="operator">.</span><span class="name">ubyte</span><span class="punctuation">,</span> <span class="literal number integer">1</span><span class="punctuation">),</span>
|
||||||
|
<span class="punctuation">(</span><span class="literal string double">"a"</span><span class="punctuation">,</span> <span class="name">np</span><span class="operator">.</span><span class="name">ubyte</span><span class="punctuation">,</span> <span class="literal number integer">1</span><span class="punctuation">)])</span>
|
||||||
|
</pre>
|
||||||
|
</li>
|
||||||
<li><p class="first">Multiply a 5x3 matrix by a 3x2 matrix (real matrix product) (★☆☆)</p>
|
<li><p class="first">Multiply a 5x3 matrix by a 3x2 matrix (real matrix product) (★☆☆)</p>
|
||||||
<pre class="code python literal-block">
|
<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">dot</span><span class="punctuation">(</span><span class="name">np</span><span class="operator">.</span><span class="name">ones</span><span class="punctuation">((</span><span class="literal number integer">5</span><span class="punctuation">,</span><span class="literal number integer">3</span><span class="punctuation">)),</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="literal number integer">2</span><span class="punctuation">)))</span>
|
<span class="name">Z</span> <span class="operator">=</span> <span class="name">np</span><span class="operator">.</span><span class="name">dot</span><span class="punctuation">(</span><span class="name">np</span><span class="operator">.</span><span class="name">ones</span><span class="punctuation">((</span><span class="literal number integer">5</span><span class="punctuation">,</span><span class="literal number integer">3</span><span class="punctuation">)),</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="literal number integer">2</span><span class="punctuation">)))</span>
|
||||||
@@ -172,6 +180,53 @@ python -c <span class="literal string double">"import numpy; numpy.info(num
|
|||||||
<span class="name">Z</span><span class="punctuation">[(</span><span class="literal number integer">3</span> <span class="operator"><</span> <span class="name">Z</span><span class="punctuation">)</span> <span class="operator">&</span> <span class="punctuation">(</span><span class="name">Z</span> <span class="operator"><=</span> <span class="literal number integer">8</span><span class="punctuation">)]</span> <span class="operator">*=</span> <span class="operator">-</span><span class="literal number integer">1</span>
|
<span class="name">Z</span><span class="punctuation">[(</span><span class="literal number integer">3</span> <span class="operator"><</span> <span class="name">Z</span><span class="punctuation">)</span> <span class="operator">&</span> <span class="punctuation">(</span><span class="name">Z</span> <span class="operator"><=</span> <span class="literal number integer">8</span><span class="punctuation">)]</span> <span class="operator">*=</span> <span class="operator">-</span><span class="literal number integer">1</span>
|
||||||
</pre>
|
</pre>
|
||||||
</li>
|
</li>
|
||||||
|
<li><p class="first">What is the output of the following script? (★☆☆)</p>
|
||||||
|
<pre class="code python literal-block">
|
||||||
|
<span class="comment single"># Author: Jake VanderPlas</span>
|
||||||
|
|
||||||
|
<span class="keyword">print</span><span class="punctuation">(</span><span class="name builtin">sum</span><span class="punctuation">(</span><span class="name builtin">range</span><span class="punctuation">(</span><span class="literal number integer">5</span><span class="punctuation">),</span><span class="operator">-</span><span class="literal number integer">1</span><span class="punctuation">))</span>
|
||||||
|
<span class="keyword namespace">from</span> <span class="name namespace">numpy</span> <span class="keyword namespace">import</span> <span class="operator">*</span>
|
||||||
|
<span class="keyword">print</span><span class="punctuation">(</span><span class="name builtin">sum</span><span class="punctuation">(</span><span class="name builtin">range</span><span class="punctuation">(</span><span class="literal number integer">5</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">Consider an integer vector Z, which of these expressions are legal? (★☆☆)</p>
|
||||||
|
<pre class="code python literal-block">
|
||||||
|
<span class="name">Z</span><span class="operator">**</span><span class="name">Z</span>
|
||||||
|
<span class="literal number integer">2</span> <span class="operator"><<</span> <span class="name">Z</span> <span class="operator">>></span> <span class="literal number integer">2</span>
|
||||||
|
<span class="name">Z</span> <span class="operator"><-</span> <span class="name">Z</span>
|
||||||
|
<span class="literal number integer">1j</span><span class="operator">*</span><span class="name">Z</span>
|
||||||
|
<span class="name">Z</span><span class="operator">/</span><span class="literal number integer">1</span><span class="operator">/</span><span class="literal number integer">1</span>
|
||||||
|
<span class="name">Z</span><span class="operator"><</span><span class="name">Z</span><span class="operator">></span><span class="name">Z</span>
|
||||||
|
</pre>
|
||||||
|
</li>
|
||||||
|
<li><p class="first">What are the result of the following expressions?</p>
|
||||||
|
<pre class="code python literal-block">
|
||||||
|
<span class="name">np</span><span class="operator">.</span><span class="name">array</span><span class="punctuation">(</span><span class="literal number integer">0</span><span class="punctuation">)</span> <span class="operator">//</span> <span class="name">np</span><span class="operator">.</span><span class="name">array</span><span class="punctuation">(</span><span class="literal number integer">0</span><span class="punctuation">)</span>
|
||||||
|
|
||||||
|
<span class="name">np</span><span class="operator">.</span><span class="name">array</span><span class="punctuation">(</span><span class="literal number integer">0</span><span class="punctuation">)</span> <span class="operator">//</span> <span class="name">np</span><span class="operator">.</span><span class="name">array</span><span class="punctuation">(</span><span class="literal number float">0.</span><span class="punctuation">)</span>
|
||||||
|
<span class="name">np</span><span class="operator">.</span><span class="name">array</span><span class="punctuation">(</span><span class="literal number integer">0</span><span class="punctuation">)</span> <span class="operator">/</span> <span class="name">np</span><span class="operator">.</span><span class="name">array</span><span class="punctuation">(</span><span class="literal number integer">0</span><span class="punctuation">)</span>
|
||||||
|
<span class="name">np</span><span class="operator">.</span><span class="name">array</span><span class="punctuation">(</span><span class="literal number integer">0</span><span class="punctuation">)</span> <span class="operator">/</span> <span class="name">np</span><span class="operator">.</span><span class="name">array</span><span class="punctuation">(</span><span class="literal number float">0.</span><span class="punctuation">)</span>
|
||||||
|
</pre>
|
||||||
|
</li>
|
||||||
|
<li><p class="first">How to round away from zero a float array ? (★☆☆)</p>
|
||||||
|
<pre class="code python literal-block">
|
||||||
|
<span class="comment single"># Author: Charles R Harris</span>
|
||||||
|
|
||||||
|
<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="operator">-</span><span class="literal number integer">10</span><span class="punctuation">,</span><span class="operator">+</span><span class="literal number integer">10</span><span class="punctuation">,</span><span class="literal number integer">10</span><span class="punctuation">)</span>
|
||||||
|
<span class="keyword">print</span> <span class="punctuation">(</span><span class="name">np</span><span class="operator">.</span><span class="name">trunc</span><span class="punctuation">(</span><span class="name">Z</span> <span class="operator">+</span> <span class="name">np</span><span class="operator">.</span><span class="name">copysign</span><span class="punctuation">(</span><span class="literal number float">0.5</span><span class="punctuation">,</span> <span class="name">Z</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>
|
||||||
|
|
||||||
|
<span class="keyword">print</span> <span class="punctuation">(</span><span class="name">Z</span> <span class="operator">-</span> <span class="name">Z</span><span class="operator">%</span><span class="literal number integer">1</span><span class="punctuation">)</span>
|
||||||
|
<span class="keyword">print</span> <span class="punctuation">(</span><span class="name">np</span><span class="operator">.</span><span class="name">floor</span><span class="punctuation">(</span><span class="name">Z</span><span class="punctuation">))</span>
|
||||||
|
<span class="keyword">print</span> <span class="punctuation">(</span><span class="name">np</span><span class="operator">.</span><span class="name">ceil</span><span class="punctuation">(</span><span class="name">Z</span><span class="punctuation">)</span><span class="operator">-</span><span class="literal number integer">1</span><span class="punctuation">)</span>
|
||||||
|
<span class="keyword">print</span> <span class="punctuation">(</span><span class="name">Z</span><span class="operator">.</span><span class="name">astype</span><span class="punctuation">(</span><span class="name builtin">int</span><span class="punctuation">))</span>
|
||||||
|
<span class="keyword">print</span> <span class="punctuation">(</span><span class="name">np</span><span class="operator">.</span><span class="name">trunc</span><span class="punctuation">(</span><span class="name">Z</span><span class="punctuation">))</span>
|
||||||
|
</pre>
|
||||||
|
</li>
|
||||||
<li><p class="first">Create a 5x5 matrix with row values ranging from 0 to 4 (★★☆)</p>
|
<li><p class="first">Create a 5x5 matrix with row values ranging from 0 to 4 (★★☆)</p>
|
||||||
<pre class="code python literal-block">
|
<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">zeros</span><span class="punctuation">((</span><span class="literal number integer">5</span><span class="punctuation">,</span><span class="literal number integer">5</span><span class="punctuation">))</span>
|
<span class="name">Z</span> <span class="operator">=</span> <span class="name">np</span><span class="operator">.</span><span class="name">zeros</span><span class="punctuation">((</span><span class="literal number integer">5</span><span class="punctuation">,</span><span class="literal number integer">5</span><span class="punctuation">))</span>
|
||||||
@@ -322,14 +377,15 @@ point by point distances (★★☆)</p>
|
|||||||
<span class="name">Z</span> <span class="operator">=</span> <span class="name">Z</span><span class="operator">.</span><span class="name">astype</span><span class="punctuation">(</span><span class="name">np</span><span class="operator">.</span><span class="name">float32</span><span class="punctuation">,</span> <span class="name">copy</span><span class="operator">=</span><span class="name builtin pseudo">False</span><span class="punctuation">)</span>
|
<span class="name">Z</span> <span class="operator">=</span> <span class="name">Z</span><span class="operator">.</span><span class="name">astype</span><span class="punctuation">(</span><span class="name">np</span><span class="operator">.</span><span class="name">float32</span><span class="punctuation">,</span> <span class="name">copy</span><span class="operator">=</span><span class="name builtin pseudo">False</span><span class="punctuation">)</span>
|
||||||
</pre>
|
</pre>
|
||||||
</li>
|
</li>
|
||||||
<li><p class="first">Consider the following file:</p>
|
<li><p class="first">How to read the following file? (★★☆)</p>
|
||||||
<pre class="literal-block">
|
|
||||||
1,2,3,4,5
|
|
||||||
6,,,7,8
|
|
||||||
,,9,10,11
|
|
||||||
</pre>
|
|
||||||
<p>How to read it ? (★★☆)</p>
|
|
||||||
<pre class="code python literal-block">
|
<pre class="code python literal-block">
|
||||||
|
<span class="comment single"># File content:</span>
|
||||||
|
<span class="comment single"># -------------</span>
|
||||||
|
<span class="literal number integer">1</span><span class="punctuation">,</span><span class="literal number integer">2</span><span class="punctuation">,</span><span class="literal number integer">3</span><span class="punctuation">,</span><span class="literal number integer">4</span><span class="punctuation">,</span><span class="literal number integer">5</span>
|
||||||
|
<span class="literal number integer">6</span><span class="punctuation">,,,</span><span class="literal number integer">7</span><span class="punctuation">,</span><span class="literal number integer">8</span>
|
||||||
|
<span class="punctuation">,,</span><span class="literal number integer">9</span><span class="punctuation">,</span><span class="literal number integer">10</span><span class="punctuation">,</span><span class="literal number integer">11</span>
|
||||||
|
<span class="comment single"># -------------</span>
|
||||||
|
|
||||||
<span class="name">Z</span> <span class="operator">=</span> <span class="name">np</span><span class="operator">.</span><span class="name">genfromtxt</span><span class="punctuation">(</span><span class="literal string double">"missing.dat"</span><span class="punctuation">,</span> <span class="name">delimiter</span><span class="operator">=</span><span class="literal string double">","</span><span class="punctuation">)</span>
|
<span class="name">Z</span> <span class="operator">=</span> <span class="name">np</span><span class="operator">.</span><span class="name">genfromtxt</span><span class="punctuation">(</span><span class="literal string double">"missing.dat"</span><span class="punctuation">,</span> <span class="name">delimiter</span><span class="operator">=</span><span class="literal string double">","</span><span class="punctuation">)</span>
|
||||||
</pre>
|
</pre>
|
||||||
</li>
|
</li>
|
||||||
@@ -399,6 +455,21 @@ point by point distances (★★☆)</p>
|
|||||||
<span class="keyword">print</span><span class="punctuation">(</span><span class="name">m</span><span class="punctuation">)</span>
|
<span class="keyword">print</span><span class="punctuation">(</span><span class="name">m</span><span class="punctuation">)</span>
|
||||||
</pre>
|
</pre>
|
||||||
</li>
|
</li>
|
||||||
|
<li><p class="first">Create an array class that has a <cite>name</cite> attribute (★★☆)</p>
|
||||||
|
<pre class="code python literal-block">
|
||||||
|
<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>
|
||||||
|
<span class="keyword">def</span> <span class="name function">__new__</span><span class="punctuation">(</span><span class="name">cls</span><span class="punctuation">,</span> <span class="name">array</span><span class="punctuation">,</span> <span class="name">name</span><span class="operator">=</span><span class="literal string double">"no name"</span><span class="punctuation">):</span>
|
||||||
|
<span class="name">obj</span> <span class="operator">=</span> <span class="name">np</span><span class="operator">.</span><span class="name">asarray</span><span class="punctuation">(</span><span class="name">array</span><span class="punctuation">)</span><span class="operator">.</span><span class="name">view</span><span class="punctuation">(</span><span class="name">cls</span><span class="punctuation">)</span>
|
||||||
|
<span class="name">obj</span><span class="operator">.</span><span class="name">name</span> <span class="operator">=</span> <span class="name">name</span>
|
||||||
|
<span class="keyword">return</span> <span class="name">obj</span>
|
||||||
|
<span class="keyword">def</span> <span class="name function">__array_finalize__</span><span class="punctuation">(</span><span class="name builtin pseudo">self</span><span class="punctuation">,</span> <span class="name">obj</span><span class="punctuation">):</span>
|
||||||
|
<span class="keyword">if</span> <span class="name">obj</span> <span class="operator word">is</span> <span class="name builtin pseudo">None</span><span class="punctuation">:</span> <span class="keyword">return</span>
|
||||||
|
<span class="name builtin pseudo">self</span><span class="operator">.</span><span class="name">info</span> <span class="operator">=</span> <span class="name builtin">getattr</span><span class="punctuation">(</span><span class="name">obj</span><span class="punctuation">,</span> <span class="literal string single">'name'</span><span class="punctuation">,</span> <span class="literal string double">"no name"</span><span class="punctuation">)</span>
|
||||||
|
|
||||||
|
<span class="name">Z</span> <span class="operator">=</span> <span class="name">NamedArray</span><span class="punctuation">(</span><span class="name">np</span><span class="operator">.</span><span class="name">arange</span><span class="punctuation">(</span><span class="literal number integer">10</span><span class="punctuation">),</span> <span class="literal string double">"range_10"</span><span class="punctuation">)</span>
|
||||||
|
<span class="keyword">print</span> <span class="punctuation">(</span><span class="name">Z</span><span class="operator">.</span><span class="name">name</span><span class="punctuation">)</span>
|
||||||
|
</pre>
|
||||||
|
</li>
|
||||||
<li><p class="first">Consider a given vector, how to add 1 to each element indexed by a second
|
<li><p class="first">Consider a given vector, how to add 1 to each element indexed by a second
|
||||||
vector (be careful with repeated indices)? (★★★)</p>
|
vector (be careful with repeated indices)? (★★★)</p>
|
||||||
<pre class="code python literal-block">
|
<pre class="code python literal-block">
|
||||||
@@ -766,7 +837,7 @@ combinations of every item) (★★★)</p>
|
|||||||
<span class="name">formats</span> <span class="operator">=</span> <span class="literal string single">'S8, f8, i8'</span><span class="punctuation">)</span>
|
<span class="name">formats</span> <span class="operator">=</span> <span class="literal string single">'S8, f8, i8'</span><span class="punctuation">)</span>
|
||||||
</pre>
|
</pre>
|
||||||
</li>
|
</li>
|
||||||
<li><p class="first">Comsider a large vector Z, compute Z to the power of 3 using 3 different
|
<li><p class="first">Consider a large vector Z, compute Z to the power of 3 using 3 different
|
||||||
methods (★★★)</p>
|
methods (★★★)</p>
|
||||||
<pre class="code python literal-block">
|
<pre class="code python literal-block">
|
||||||
<span class="name">Author</span><span class="punctuation">:</span> <span class="name">Ryan</span> <span class="name">G</span><span class="operator">.</span>
|
<span class="name">Author</span><span class="punctuation">:</span> <span class="name">Ryan</span> <span class="name">G</span><span class="operator">.</span>
|
||||||
|
|||||||
90
README.rst
90
README.rst
@@ -193,6 +193,14 @@ Thanks to Michiaki Ariga, there is now a
|
|||||||
Z = (Z - Zmin)/(Zmax - Zmin)
|
Z = (Z - Zmin)/(Zmax - Zmin)
|
||||||
print(Z)
|
print(Z)
|
||||||
|
|
||||||
|
#. Create a custom dtype that describes a color as four unisgned bytes (RGBA) (★☆☆)
|
||||||
|
|
||||||
|
.. code-block:: python
|
||||||
|
|
||||||
|
color = np.dtype([("r", np.ubyte, 1),
|
||||||
|
("g", np.ubyte, 1),
|
||||||
|
("b", np.ubyte, 1),
|
||||||
|
("a", np.ubyte, 1)])
|
||||||
|
|
||||||
#. Multiply a 5x3 matrix by a 3x2 matrix (real matrix product) (★☆☆)
|
#. Multiply a 5x3 matrix by a 3x2 matrix (real matrix product) (★☆☆)
|
||||||
|
|
||||||
@@ -210,6 +218,59 @@ Thanks to Michiaki Ariga, there is now a
|
|||||||
Z = np.arange(11)
|
Z = np.arange(11)
|
||||||
Z[(3 < Z) & (Z <= 8)] *= -1
|
Z[(3 < Z) & (Z <= 8)] *= -1
|
||||||
|
|
||||||
|
#. What is the output of the following script? (★☆☆)
|
||||||
|
|
||||||
|
.. code-block:: python
|
||||||
|
|
||||||
|
# Author: Jake VanderPlas
|
||||||
|
|
||||||
|
print(sum(range(5),-1))
|
||||||
|
from numpy import *
|
||||||
|
print(sum(range(5),-1))
|
||||||
|
|
||||||
|
#. Consider an integer vector Z, which of these expressions are legal? (★☆☆)
|
||||||
|
|
||||||
|
.. code-block:: python
|
||||||
|
|
||||||
|
Z**Z
|
||||||
|
2 << Z >> 2
|
||||||
|
Z <- Z
|
||||||
|
1j*Z
|
||||||
|
Z/1/1
|
||||||
|
Z<Z>Z
|
||||||
|
|
||||||
|
#. What are the result of the following expressions?
|
||||||
|
|
||||||
|
.. code-block:: python
|
||||||
|
|
||||||
|
np.array(0) // np.array(0)
|
||||||
|
|
||||||
|
np.array(0) // np.array(0.)
|
||||||
|
np.array(0) / np.array(0)
|
||||||
|
np.array(0) / np.array(0.)
|
||||||
|
|
||||||
|
#. How to round away from zero a float array ? (★☆☆)
|
||||||
|
|
||||||
|
.. code-block:: python
|
||||||
|
|
||||||
|
# Author: Charles R Harris
|
||||||
|
|
||||||
|
Z = np.random.uniform(-10,+10,10)
|
||||||
|
print (np.trunc(Z + np.copysign(0.5, Z)))
|
||||||
|
|
||||||
|
|
||||||
|
#. Extract the integer part of a random array using 5 different methods (★★☆)
|
||||||
|
|
||||||
|
.. code-block:: python
|
||||||
|
|
||||||
|
Z = np.random.uniform(0,10,10)
|
||||||
|
|
||||||
|
print (Z - Z%1)
|
||||||
|
print (np.floor(Z))
|
||||||
|
print (np.ceil(Z)-1)
|
||||||
|
print (Z.astype(int))
|
||||||
|
print (np.trunc(Z))
|
||||||
|
|
||||||
|
|
||||||
#. Create a 5x5 matrix with row values ranging from 0 to 4 (★★☆)
|
#. Create a 5x5 matrix with row values ranging from 0 to 4 (★★☆)
|
||||||
|
|
||||||
@@ -394,15 +455,16 @@ Thanks to Michiaki Ariga, there is now a
|
|||||||
Z = Z.astype(np.float32, copy=False)
|
Z = Z.astype(np.float32, copy=False)
|
||||||
|
|
||||||
|
|
||||||
#. Consider the following file::
|
#. How to read the following file? (★★☆)
|
||||||
|
|
||||||
|
.. code-block:: python
|
||||||
|
|
||||||
|
# File content:
|
||||||
|
# -------------
|
||||||
1,2,3,4,5
|
1,2,3,4,5
|
||||||
6,,,7,8
|
6,,,7,8
|
||||||
,,9,10,11
|
,,9,10,11
|
||||||
|
# -------------
|
||||||
How to read it ? (★★☆)
|
|
||||||
|
|
||||||
.. code-block:: python
|
|
||||||
|
|
||||||
Z = np.genfromtxt("missing.dat", delimiter=",")
|
Z = np.genfromtxt("missing.dat", delimiter=",")
|
||||||
|
|
||||||
@@ -484,6 +546,21 @@ Thanks to Michiaki Ariga, there is now a
|
|||||||
print(m)
|
print(m)
|
||||||
|
|
||||||
|
|
||||||
|
#. Create an array class that has a `name` attribute (★★☆)
|
||||||
|
|
||||||
|
.. code-block:: python
|
||||||
|
|
||||||
|
class NamedArray(np.ndarray):
|
||||||
|
def __new__(cls, array, name="no name"):
|
||||||
|
obj = np.asarray(array).view(cls)
|
||||||
|
obj.name = name
|
||||||
|
return obj
|
||||||
|
def __array_finalize__(self, obj):
|
||||||
|
if obj is None: return
|
||||||
|
self.info = getattr(obj, 'name', "no name")
|
||||||
|
|
||||||
|
Z = NamedArray(np.arange(10), "range_10")
|
||||||
|
print (Z.name)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -903,7 +980,7 @@ Thanks to Michiaki Ariga, there is now a
|
|||||||
names='col1, col2, col3',
|
names='col1, col2, col3',
|
||||||
formats = 'S8, f8, i8')
|
formats = 'S8, f8, i8')
|
||||||
|
|
||||||
#. Comsider a large vector Z, compute Z to the power of 3 using 3 different
|
#. Consider a large vector Z, compute Z to the power of 3 using 3 different
|
||||||
methods (★★★)
|
methods (★★★)
|
||||||
|
|
||||||
.. code-block:: python
|
.. code-block:: python
|
||||||
@@ -951,7 +1028,6 @@ Thanks to Michiaki Ariga, there is now a
|
|||||||
print(U)
|
print(U)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#. Convert a vector of ints into a matrix binary representation (★★★)
|
#. Convert a vector of ints into a matrix binary representation (★★★)
|
||||||
|
|
||||||
.. code-block:: python
|
.. code-block:: python
|
||||||
|
|||||||
Reference in New Issue
Block a user