1 2 3<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 4 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 5<html xmlns="http://www.w3.org/1999/xhtml"> 6 <head> 7 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 8 9 <title>ndarray - Boost.Python NumPy extension 1.0 documentation</title> 10 <link rel="stylesheet" href="../_static/pygments.css" type="text/css" /> 11 <link rel="stylesheet" href="../_static/style.css" type="text/css" /> 12 <script type="text/javascript"> 13 var DOCUMENTATION_OPTIONS = { 14 URL_ROOT: '../', 15 VERSION: '1.0', 16 COLLAPSE_MODINDEX: false, 17 FILE_SUFFIX: '.html' 18 }; 19 </script> 20 <script type="text/javascript" src="../_static/jquery.js"></script> 21 <script type="text/javascript" src="../_static/underscore.js"></script> 22 <script type="text/javascript" src="../_static/doctools.js"></script> 23 <link rel="index" title="Index" href="../genindex.html" /> 24 <link rel="search" title="Search" href="../search.html" /> 25 <link rel="top" title="Boost.Python NumPy extension 1.0 documentation" href="../index.html" /> 26 <link rel="up" title="Boost.Python NumPy extension Reference" href="index.html" /> 27 <link rel="next" title="unary_ufunc" href="unary_ufunc.html" /> 28 <link rel="prev" title="dtype" href="dtype.html" /> 29 </head> 30 <body> 31 <div class="header"> 32 <table border="0" cellpadding="7" cellspacing="0" width="100%" summary= 33 "header"> 34 <tr> 35 <td valign="top" width="300"> 36 <h3><a href="../index.html"><img 37 alt="C++ Boost" src="../_static/bpl.png" border="0"></a></h3> 38 </td> 39 40 <td > 41 <h1 align="center"><a href="../index.html">(NumPy)</a></h1> 42<!-- <h2 align="center">CallPolicies Concept</h2>--> 43 </td> 44 <td> 45 <div id="searchbox" style="display: none"> 46 <form class="search" action="../search.html" method="get"> 47 <input type="text" name="q" size="18" /> 48 <input type="submit" value="Search" /> 49 <input type="hidden" name="check_keywords" value="yes" /> 50 <input type="hidden" name="area" value="default" /> 51 </form> 52 </div> 53 <script type="text/javascript">$('#searchbox').show(0);</script> 54 </td> 55 </tr> 56 </table> 57 </div> 58 <hr/> 59 <div class="content"> 60 <div class="navbar" style="text-align:right;"> 61 62 63 <a class="prev" title="dtype" href="dtype.html"><img src="../_static/prev.png" alt="prev"/></a> 64 <a class="up" title="Boost.Python NumPy extension Reference" href="index.html"><img src="../_static/up.png" alt="up"/></a> 65 <a class="next" title="unary_ufunc" href="unary_ufunc.html"><img src="../_static/next.png" alt="next"/></a> 66 67 </div> 68 69 <div class="section" id="ndarray"> 70<h1><a class="toc-backref" href="#id2">ndarray</a></h1> 71<div class="contents topic" id="table-of-contents"> 72<p class="topic-title first">Table of Contents</p> 73<ul class="simple"> 74<li><a class="reference internal" href="#ndarray" id="id2">ndarray</a><ul> 75<li><a class="reference internal" href="#synopsis" id="id3">synopsis</a></li> 76<li><a class="reference internal" href="#constructors" id="id4">constructors</a></li> 77<li><a class="reference internal" href="#accessors" id="id5">accessors</a></li> 78<li><a class="reference internal" href="#example-s" id="id6">Example(s)</a></li> 79</ul> 80</li> 81</ul> 82</div> 83<p>A <a class="reference external" href="http://docs.scipy.org/doc/numpy/reference/arrays.ndarray.html">ndarray</a> is an N-dimensional array which contains items of the same type and size, where N is the number of dimensions and is specified in the form of a <code class="docutils literal"><span class="pre">shape</span></code> tuple. Optionally, the numpy <code class="docutils literal"><span class="pre">dtype</span></code> for the objects contained may also be specified.</p> 84<blockquote> 85<div><code class="docutils literal"><span class="pre"><boost/python/numpy/ndarray.hpp></span></code> contains the structures and methods necessary to move raw data between C++ and Python and create ndarrays from the data</div></blockquote> 86<div class="section" id="synopsis"> 87<h2><a class="toc-backref" href="#id3">synopsis</a></h2> 88<div class="highlight-c++"><div class="highlight"><pre><span class="k">namespace</span> <span class="n">boost</span> 89<span class="p">{</span> 90<span class="k">namespace</span> <span class="n">python</span> 91<span class="p">{</span> 92<span class="k">namespace</span> <span class="n">numpy</span> 93<span class="p">{</span> 94 95<span class="k">class</span> <span class="nc">ndarray</span> <span class="o">:</span> <span class="k">public</span> <span class="n">object</span> 96<span class="p">{</span> 97 98<span class="k">public</span><span class="o">:</span> 99 100 <span class="k">enum</span> <span class="n">bitflag</span> 101 <span class="p">{</span> 102 <span class="n">NONE</span><span class="o">=</span><span class="mh">0x0</span><span class="p">,</span> <span class="n">C_CONTIGUOUS</span><span class="o">=</span><span class="mh">0x1</span><span class="p">,</span> <span class="n">F_CONTIGUOUS</span><span class="o">=</span><span class="mh">0x2</span><span class="p">,</span> <span class="n">V_CONTIGUOUS</span><span class="o">=</span><span class="mh">0x1</span><span class="o">|</span><span class="mh">0x2</span><span class="p">,</span> 103 <span class="n">ALIGNED</span><span class="o">=</span><span class="mh">0x4</span><span class="p">,</span> <span class="n">WRITEABLE</span><span class="o">=</span><span class="mh">0x8</span><span class="p">,</span> <span class="n">BEHAVED</span><span class="o">=</span><span class="mh">0x4</span><span class="o">|</span><span class="mh">0x8</span><span class="p">,</span> 104 <span class="n">CARRAY_RO</span><span class="o">=</span><span class="mh">0x1</span><span class="o">|</span><span class="mh">0x4</span><span class="p">,</span> <span class="n">CARRAY</span><span class="o">=</span><span class="mh">0x1</span><span class="o">|</span><span class="mh">0x4</span><span class="o">|</span><span class="mh">0x8</span><span class="p">,</span> <span class="n">CARRAY_MIS</span><span class="o">=</span><span class="mh">0x1</span><span class="o">|</span><span class="mh">0x8</span><span class="p">,</span> 105 <span class="n">FARRAY_RO</span><span class="o">=</span><span class="mh">0x2</span><span class="o">|</span><span class="mh">0x4</span><span class="p">,</span> <span class="n">FARRAY</span><span class="o">=</span><span class="mh">0x2</span><span class="o">|</span><span class="mh">0x4</span><span class="o">|</span><span class="mh">0x8</span><span class="p">,</span> <span class="n">FARRAY_MIS</span><span class="o">=</span><span class="mh">0x2</span><span class="o">|</span><span class="mh">0x8</span><span class="p">,</span> 106 <span class="n">UPDATE_ALL</span><span class="o">=</span><span class="mh">0x1</span><span class="o">|</span><span class="mh">0x2</span><span class="o">|</span><span class="mh">0x4</span><span class="p">,</span> <span class="n">VARRAY</span><span class="o">=</span><span class="mh">0x1</span><span class="o">|</span><span class="mh">0x2</span><span class="o">|</span><span class="mh">0x8</span><span class="p">,</span> <span class="n">ALL</span><span class="o">=</span><span class="mh">0x1</span><span class="o">|</span><span class="mh">0x2</span><span class="o">|</span><span class="mh">0x4</span><span class="o">|</span><span class="mh">0x8</span> 107 <span class="p">};</span> 108 109 <span class="n">ndarray</span> <span class="nf">view</span><span class="p">(</span><span class="n">dtype</span> <span class="k">const</span> <span class="o">&</span> <span class="n">dt</span><span class="p">)</span> <span class="k">const</span><span class="p">;</span> 110 <span class="n">ndarray</span> <span class="nf">astype</span><span class="p">(</span><span class="n">dtype</span> <span class="k">const</span> <span class="o">&</span> <span class="n">dt</span><span class="p">)</span> <span class="k">const</span><span class="p">;</span> 111 <span class="n">ndarray</span> <span class="nf">copy</span><span class="p">()</span> <span class="k">const</span><span class="p">;</span> 112 <span class="kt">int</span> <span class="k">const</span> <span class="nf">shape</span><span class="p">(</span><span class="kt">int</span> <span class="n">n</span><span class="p">)</span> <span class="k">const</span><span class="p">;</span> 113 <span class="kt">int</span> <span class="k">const</span> <span class="nf">strides</span><span class="p">(</span><span class="kt">int</span> <span class="n">n</span><span class="p">)</span> <span class="k">const</span><span class="p">;</span> 114 <span class="kt">char</span> <span class="o">*</span> <span class="nf">get_data</span><span class="p">()</span> <span class="k">const</span><span class="p">;</span> 115 <span class="n">dtype</span> <span class="nf">get_dtype</span><span class="p">()</span> <span class="k">const</span><span class="p">;</span> 116 <span class="n">python</span><span class="o">::</span><span class="n">object</span> <span class="n">get_base</span><span class="p">()</span> <span class="k">const</span><span class="p">;</span> 117 <span class="kt">void</span> <span class="nf">set_base</span><span class="p">(</span><span class="n">object</span> <span class="k">const</span> <span class="o">&</span> <span class="n">base</span><span class="p">);</span> 118 <span class="n">Py_intptr_t</span> <span class="k">const</span> <span class="o">*</span> <span class="nf">get_shape</span><span class="p">()</span> <span class="k">const</span><span class="p">;</span> 119 <span class="n">Py_intptr_t</span> <span class="k">const</span> <span class="o">*</span> <span class="nf">get_strides</span><span class="p">()</span> <span class="k">const</span><span class="p">;</span> 120 <span class="kt">int</span> <span class="k">const</span> <span class="nf">get_nd</span><span class="p">()</span> <span class="k">const</span><span class="p">;</span> 121 122 <span class="n">bitflag</span> <span class="k">const</span> <span class="nf">get_flags</span><span class="p">()</span> <span class="k">const</span><span class="p">;</span> 123 124 <span class="n">ndarray</span> <span class="nf">transpose</span><span class="p">()</span> <span class="k">const</span><span class="p">;</span> 125 <span class="n">ndarray</span> <span class="nf">squeeze</span><span class="p">()</span> <span class="k">const</span><span class="p">;</span> 126 <span class="n">ndarray</span> <span class="nf">reshape</span><span class="p">(</span><span class="n">tuple</span> <span class="k">const</span> <span class="o">&</span> <span class="n">shape</span><span class="p">)</span> <span class="k">const</span><span class="p">;</span> 127 <span class="n">object</span> <span class="nf">scalarize</span><span class="p">()</span> <span class="k">const</span><span class="p">;</span> 128<span class="p">};</span> 129 130<span class="n">ndarray</span> <span class="nf">zeros</span><span class="p">(</span><span class="n">tuple</span> <span class="k">const</span> <span class="o">&</span> <span class="n">shape</span><span class="p">,</span> <span class="n">dtype</span> <span class="k">const</span> <span class="o">&</span> <span class="n">dt</span><span class="p">);</span> 131<span class="n">ndarray</span> <span class="nf">zeros</span><span class="p">(</span><span class="kt">int</span> <span class="n">nd</span><span class="p">,</span> <span class="n">Py_intptr_t</span> <span class="k">const</span> <span class="o">*</span> <span class="n">shape</span><span class="p">,</span> <span class="n">dtype</span> <span class="k">const</span> <span class="o">&</span> <span class="n">dt</span><span class="p">);</span> 132 133<span class="n">ndarray</span> <span class="nf">empty</span><span class="p">(</span><span class="n">tuple</span> <span class="k">const</span> <span class="o">&</span> <span class="n">shape</span><span class="p">,</span> <span class="n">dtype</span> <span class="k">const</span> <span class="o">&</span> <span class="n">dt</span><span class="p">);</span> 134<span class="n">ndarray</span> <span class="nf">empty</span><span class="p">(</span><span class="kt">int</span> <span class="n">nd</span><span class="p">,</span> <span class="n">Py_intptr_t</span> <span class="k">const</span> <span class="o">*</span> <span class="n">shape</span><span class="p">,</span> <span class="n">dtype</span> <span class="k">const</span> <span class="o">&</span> <span class="n">dt</span><span class="p">);</span> 135 136<span class="n">ndarray</span> <span class="nf">array</span><span class="p">(</span><span class="n">object</span> <span class="k">const</span> <span class="o">&</span> <span class="n">obj</span><span class="p">);</span> 137<span class="n">ndarray</span> <span class="nf">array</span><span class="p">(</span><span class="n">object</span> <span class="k">const</span> <span class="o">&</span> <span class="n">obj</span><span class="p">,</span> <span class="n">dtype</span> <span class="k">const</span> <span class="o">&</span> <span class="n">dt</span><span class="p">);</span> 138 139<span class="k">template</span> <span class="o"><</span><span class="k">typename</span> <span class="n">Container</span><span class="o">></span> 140<span class="n">ndarray</span> <span class="n">from_data</span><span class="p">(</span><span class="kt">void</span> <span class="o">*</span> <span class="n">data</span><span class="p">,</span><span class="n">dtype</span> <span class="k">const</span> <span class="o">&</span> <span class="n">dt</span><span class="p">,</span><span class="n">Container</span> <span class="n">shape</span><span class="p">,</span><span class="n">Container</span> <span class="n">strides</span><span class="p">,</span><span class="n">python</span><span class="o">::</span><span class="n">object</span> <span class="k">const</span> <span class="o">&</span> <span class="n">owner</span><span class="p">);</span> 141<span class="k">template</span> <span class="o"><</span><span class="k">typename</span> <span class="n">Container</span><span class="o">></span> 142<span class="n">ndarray</span> <span class="n">from_data</span><span class="p">(</span><span class="kt">void</span> <span class="k">const</span> <span class="o">*</span> <span class="n">data</span><span class="p">,</span> <span class="n">dtype</span> <span class="k">const</span> <span class="o">&</span> <span class="n">dt</span><span class="p">,</span> <span class="n">Container</span> <span class="n">shape</span><span class="p">,</span> <span class="n">Container</span> <span class="n">strides</span><span class="p">,</span> <span class="n">object</span> <span class="k">const</span> <span class="o">&</span> <span class="n">owner</span><span class="p">);</span> 143 144<span class="n">ndarray</span> <span class="nf">from_object</span><span class="p">(</span><span class="n">object</span> <span class="k">const</span> <span class="o">&</span> <span class="n">obj</span><span class="p">,</span> <span class="n">dtype</span> <span class="k">const</span> <span class="o">&</span> <span class="n">dt</span><span class="p">,</span><span class="kt">int</span> <span class="n">nd_min</span><span class="p">,</span> <span class="kt">int</span> <span class="n">nd_max</span><span class="p">,</span> <span class="n">ndarray</span><span class="o">::</span><span class="n">bitflag</span> <span class="n">flags</span><span class="o">=</span><span class="n">ndarray</span><span class="o">::</span><span class="n">NONE</span><span class="p">);</span> 145<span class="n">ndarray</span> <span class="nf">from_object</span><span class="p">(</span><span class="n">object</span> <span class="k">const</span> <span class="o">&</span> <span class="n">obj</span><span class="p">,</span> <span class="n">dtype</span> <span class="k">const</span> <span class="o">&</span> <span class="n">dt</span><span class="p">,</span><span class="kt">int</span> <span class="n">nd</span><span class="p">,</span> <span class="n">ndarray</span><span class="o">::</span><span class="n">bitflag</span> <span class="n">flags</span><span class="o">=</span><span class="n">ndarray</span><span class="o">::</span><span class="n">NONE</span><span class="p">);</span> 146<span class="n">ndarray</span> <span class="nf">from_object</span><span class="p">(</span><span class="n">object</span> <span class="k">const</span> <span class="o">&</span> <span class="n">obj</span><span class="p">,</span> <span class="n">dtype</span> <span class="k">const</span> <span class="o">&</span> <span class="n">dt</span><span class="p">,</span> <span class="n">ndarray</span><span class="o">::</span><span class="n">bitflag</span> <span class="n">flags</span><span class="o">=</span><span class="n">ndarray</span><span class="o">::</span><span class="n">NONE</span><span class="p">);</span> 147<span class="n">ndarray</span> <span class="nf">from_object</span><span class="p">(</span><span class="n">object</span> <span class="k">const</span> <span class="o">&</span> <span class="n">obj</span><span class="p">,</span> <span class="kt">int</span> <span class="n">nd_min</span><span class="p">,</span> <span class="kt">int</span> <span class="n">nd_max</span><span class="p">,</span><span class="n">ndarray</span><span class="o">::</span><span class="n">bitflag</span> <span class="n">flags</span><span class="o">=</span><span class="n">ndarray</span><span class="o">::</span><span class="n">NONE</span><span class="p">);</span> 148<span class="n">ndarray</span> <span class="nf">from_object</span><span class="p">(</span><span class="n">object</span> <span class="k">const</span> <span class="o">&</span> <span class="n">obj</span><span class="p">,</span> <span class="kt">int</span> <span class="n">nd</span><span class="p">,</span> <span class="n">ndarray</span><span class="o">::</span><span class="n">bitflag</span> <span class="n">flags</span><span class="o">=</span><span class="n">ndarray</span><span class="o">::</span><span class="n">NONE</span><span class="p">);</span> 149<span class="n">ndarray</span> <span class="nf">from_object</span><span class="p">(</span><span class="n">object</span> <span class="k">const</span> <span class="o">&</span> <span class="n">obj</span><span class="p">,</span> <span class="n">ndarray</span><span class="o">::</span><span class="n">bitflag</span> <span class="n">flags</span><span class="o">=</span><span class="n">ndarray</span><span class="o">::</span><span class="n">NONE</span><span class="p">)</span> 150 151<span class="n">ndarray</span><span class="o">::</span><span class="n">bitflag</span> <span class="k">operator</span><span class="o">|</span><span class="p">(</span><span class="n">ndarray</span><span class="o">::</span><span class="n">bitflag</span> <span class="n">a</span><span class="p">,</span> <span class="n">ndarray</span><span class="o">::</span><span class="n">bitflag</span> <span class="n">b</span><span class="p">)</span> <span class="p">;</span> 152<span class="n">ndarray</span><span class="o">::</span><span class="n">bitflag</span> <span class="k">operator</span><span class="o">&</span><span class="p">(</span><span class="n">ndarray</span><span class="o">::</span><span class="n">bitflag</span> <span class="n">a</span><span class="p">,</span> <span class="n">ndarray</span><span class="o">::</span><span class="n">bitflag</span> <span class="n">b</span><span class="p">);</span> 153 154<span class="p">}</span> 155</pre></div> 156</div> 157</div> 158<div class="section" id="constructors"> 159<h2><a class="toc-backref" href="#id4">constructors</a></h2> 160<div class="highlight-c++"><div class="highlight"><pre><span class="n">ndarray</span> <span class="nf">view</span><span class="p">(</span><span class="n">dtype</span> <span class="k">const</span> <span class="o">&</span> <span class="n">dt</span><span class="p">)</span> <span class="k">const</span><span class="p">;</span> 161</pre></div> 162</div> 163<table class="docutils field-list" frame="void" rules="none"> 164<col class="field-name" /> 165<col class="field-body" /> 166<tbody valign="top"> 167<tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">new ndarray with old ndarray data cast as supplied dtype</td> 168</tr> 169</tbody> 170</table> 171<div class="highlight-c++"><div class="highlight"><pre><span class="n">ndarray</span> <span class="nf">astype</span><span class="p">(</span><span class="n">dtype</span> <span class="k">const</span> <span class="o">&</span> <span class="n">dt</span><span class="p">)</span> <span class="k">const</span><span class="p">;</span> 172</pre></div> 173</div> 174<table class="docutils field-list" frame="void" rules="none"> 175<col class="field-name" /> 176<col class="field-body" /> 177<tbody valign="top"> 178<tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">new ndarray with old ndarray data converted to supplied dtype</td> 179</tr> 180</tbody> 181</table> 182<div class="highlight-c++"><div class="highlight"><pre><span class="n">ndarray</span> <span class="nf">copy</span><span class="p">()</span> <span class="k">const</span><span class="p">;</span> 183</pre></div> 184</div> 185<table class="docutils field-list" frame="void" rules="none"> 186<col class="field-name" /> 187<col class="field-body" /> 188<tbody valign="top"> 189<tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">Copy of calling ndarray object</td> 190</tr> 191</tbody> 192</table> 193<div class="highlight-c++"><div class="highlight"><pre><span class="n">ndarray</span> <span class="nf">transpose</span><span class="p">()</span> <span class="k">const</span><span class="p">;</span> 194</pre></div> 195</div> 196<table class="docutils field-list" frame="void" rules="none"> 197<col class="field-name" /> 198<col class="field-body" /> 199<tbody valign="top"> 200<tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">An ndarray with the rows and columns interchanged</td> 201</tr> 202</tbody> 203</table> 204<div class="highlight-c++"><div class="highlight"><pre><span class="n">ndarray</span> <span class="nf">squeeze</span><span class="p">()</span> <span class="k">const</span><span class="p">;</span> 205</pre></div> 206</div> 207<table class="docutils field-list" frame="void" rules="none"> 208<col class="field-name" /> 209<col class="field-body" /> 210<tbody valign="top"> 211<tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">An ndarray with all unit-shaped dimensions removed</td> 212</tr> 213</tbody> 214</table> 215<div class="highlight-c++"><div class="highlight"><pre><span class="n">ndarray</span> <span class="nf">reshape</span><span class="p">(</span><span class="n">tuple</span> <span class="k">const</span> <span class="o">&</span> <span class="n">shape</span><span class="p">)</span> <span class="k">const</span><span class="p">;</span> 216</pre></div> 217</div> 218<table class="docutils field-list" frame="void" rules="none"> 219<col class="field-name" /> 220<col class="field-body" /> 221<tbody valign="top"> 222<tr class="field-odd field"><th class="field-name">Requirements:</th><td class="field-body">The new <code class="docutils literal"><span class="pre">shape</span></code> of the ndarray must be supplied as a tuple</td> 223</tr> 224<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body">An ndarray with the same data but reshaped to the <code class="docutils literal"><span class="pre">shape</span></code> supplied</td> 225</tr> 226</tbody> 227</table> 228<div class="highlight-c++"><div class="highlight"><pre><span class="n">object</span> <span class="nf">scalarize</span><span class="p">()</span> <span class="k">const</span><span class="p">;</span> 229</pre></div> 230</div> 231<table class="docutils field-list" frame="void" rules="none"> 232<col class="field-name" /> 233<col class="field-body" /> 234<tbody valign="top"> 235<tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">A scalar if the ndarray has only one element, otherwise it returns the entire array</td> 236</tr> 237</tbody> 238</table> 239<div class="highlight-c++"><div class="highlight"><pre><span class="n">ndarray</span> <span class="nf">zeros</span><span class="p">(</span><span class="n">tuple</span> <span class="k">const</span> <span class="o">&</span> <span class="n">shape</span><span class="p">,</span> <span class="n">dtype</span> <span class="k">const</span> <span class="o">&</span> <span class="n">dt</span><span class="p">);</span> 240<span class="n">ndarray</span> <span class="nf">zeros</span><span class="p">(</span><span class="kt">int</span> <span class="n">nd</span><span class="p">,</span> <span class="n">Py_intptr_t</span> <span class="k">const</span> <span class="o">*</span> <span class="n">shape</span><span class="p">,</span> <span class="n">dtype</span> <span class="k">const</span> <span class="o">&</span> <span class="n">dt</span><span class="p">);</span> 241</pre></div> 242</div> 243<table class="docutils field-list" frame="void" rules="none"> 244<col class="field-name" /> 245<col class="field-body" /> 246<tbody valign="top"> 247<tr class="field-odd field"><th class="field-name">Requirements:</th><td class="field-body"><p class="first">The following parameters must be supplied as required :</p> 248<ul class="simple"> 249<li>the <code class="docutils literal"><span class="pre">shape</span></code> or the size of all dimensions, as a tuple</li> 250<li>the <code class="docutils literal"><span class="pre">dtype</span></code> of the data</li> 251<li>the <code class="docutils literal"><span class="pre">nd</span></code> size for a square shaped ndarray</li> 252<li>the <code class="docutils literal"><span class="pre">shape</span></code> Py_intptr_t</li> 253</ul> 254</td> 255</tr> 256<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">A new ndarray with the given shape and data type, with data initialized to zero.</p> 257</td> 258</tr> 259</tbody> 260</table> 261<div class="highlight-c++"><div class="highlight"><pre><span class="n">ndarray</span> <span class="nf">empty</span><span class="p">(</span><span class="n">tuple</span> <span class="k">const</span> <span class="o">&</span> <span class="n">shape</span><span class="p">,</span> <span class="n">dtype</span> <span class="k">const</span> <span class="o">&</span> <span class="n">dt</span><span class="p">);</span> 262<span class="n">ndarray</span> <span class="nf">empty</span><span class="p">(</span><span class="kt">int</span> <span class="n">nd</span><span class="p">,</span> <span class="n">Py_intptr_t</span> <span class="k">const</span> <span class="o">*</span> <span class="n">shape</span><span class="p">,</span> <span class="n">dtype</span> <span class="k">const</span> <span class="o">&</span> <span class="n">dt</span><span class="p">);</span> 263</pre></div> 264</div> 265<table class="docutils field-list" frame="void" rules="none"> 266<col class="field-name" /> 267<col class="field-body" /> 268<tbody valign="top"> 269<tr class="field-odd field"><th class="field-name">Requirements:</th><td class="field-body"><p class="first">The following parameters must be supplied :</p> 270<ul class="simple"> 271<li>the <code class="docutils literal"><span class="pre">shape</span></code> or the size of all dimensions, as a tuple</li> 272<li>the <code class="docutils literal"><span class="pre">dtype</span></code> of the data</li> 273<li>the <code class="docutils literal"><span class="pre">shape</span></code> Py_intptr_t</li> 274</ul> 275</td> 276</tr> 277<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">A new ndarray with the given shape and data type, with data left uninitialized.</p> 278</td> 279</tr> 280</tbody> 281</table> 282<div class="highlight-c++"><div class="highlight"><pre><span class="n">ndarray</span> <span class="nf">array</span><span class="p">(</span><span class="n">object</span> <span class="k">const</span> <span class="o">&</span> <span class="n">obj</span><span class="p">);</span> 283<span class="n">ndarray</span> <span class="nf">array</span><span class="p">(</span><span class="n">object</span> <span class="k">const</span> <span class="o">&</span> <span class="n">obj</span><span class="p">,</span> <span class="n">dtype</span> <span class="k">const</span> <span class="o">&</span> <span class="n">dt</span><span class="p">);</span> 284</pre></div> 285</div> 286<table class="docutils field-list" frame="void" rules="none"> 287<col class="field-name" /> 288<col class="field-body" /> 289<tbody valign="top"> 290<tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">A new ndarray from an arbitrary Python sequence, with dtype of each element specified optionally</td> 291</tr> 292</tbody> 293</table> 294<div class="highlight-c++"><div class="highlight"><pre><span class="k">template</span> <span class="o"><</span><span class="k">typename</span> <span class="n">Container</span><span class="o">></span> 295<span class="kr">inline</span> <span class="n">ndarray</span> <span class="n">from_data</span><span class="p">(</span><span class="kt">void</span> <span class="o">*</span> <span class="n">data</span><span class="p">,</span><span class="n">dtype</span> <span class="k">const</span> <span class="o">&</span> <span class="n">dt</span><span class="p">,</span><span class="n">Container</span> <span class="n">shape</span><span class="p">,</span><span class="n">Container</span> <span class="n">strides</span><span class="p">,</span><span class="n">python</span><span class="o">::</span><span class="n">object</span> <span class="k">const</span> <span class="o">&</span> <span class="n">owner</span><span class="p">)</span> 296</pre></div> 297</div> 298<table class="docutils field-list" frame="void" rules="none"> 299<col class="field-name" /> 300<col class="field-body" /> 301<tbody valign="top"> 302<tr class="field-odd field"><th class="field-name">Requirements:</th><td class="field-body"><p class="first">The following parameters must be supplied :</p> 303<ul class="simple"> 304<li>the <code class="docutils literal"><span class="pre">data</span></code> which is a generic C++ data container</li> 305<li>the dtype <code class="docutils literal"><span class="pre">dt</span></code> of the data</li> 306<li>the <code class="docutils literal"><span class="pre">shape</span></code> of the ndarray as Python object</li> 307<li>the <code class="docutils literal"><span class="pre">strides</span></code> of each dimension of the array as a Python object</li> 308<li>the <code class="docutils literal"><span class="pre">owner</span></code> of the data, in case it is not the ndarray itself</li> 309</ul> 310</td> 311</tr> 312<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first">ndarray with attributes and data supplied</p> 313</td> 314</tr> 315<tr class="field-odd field"><th class="field-name">Note:</th><td class="field-body"><p class="first last">The <code class="docutils literal"><span class="pre">Container</span></code> typename must be one that is convertible to a std::vector or python object type</p> 316</td> 317</tr> 318</tbody> 319</table> 320<div class="highlight-c++"><div class="highlight"><pre><span class="n">ndarray</span> <span class="nf">from_object</span><span class="p">(</span><span class="n">object</span> <span class="k">const</span> <span class="o">&</span> <span class="n">obj</span><span class="p">,</span> <span class="n">dtype</span> <span class="k">const</span> <span class="o">&</span> <span class="n">dt</span><span class="p">,</span><span class="kt">int</span> <span class="n">nd_min</span><span class="p">,</span> <span class="kt">int</span> <span class="n">nd_max</span><span class="p">,</span> <span class="n">ndarray</span><span class="o">::</span><span class="n">bitflag</span> <span class="n">flags</span><span class="o">=</span><span class="n">ndarray</span><span class="o">::</span><span class="n">NONE</span><span class="p">);</span> 321</pre></div> 322</div> 323<table class="docutils field-list" frame="void" rules="none"> 324<col class="field-name" /> 325<col class="field-body" /> 326<tbody valign="top"> 327<tr class="field-odd field"><th class="field-name">Requirements:</th><td class="field-body"><p class="first">The following parameters must be supplied :</p> 328<ul class="simple"> 329<li>the <code class="docutils literal"><span class="pre">obj</span></code> Python object to convert to ndarray</li> 330<li>the dtype <code class="docutils literal"><span class="pre">dt</span></code> of the data</li> 331<li>minimum number of dimensions <code class="docutils literal"><span class="pre">nd_min</span></code> of the ndarray as Python object</li> 332<li>maximum number of dimensions <code class="docutils literal"><span class="pre">nd_max</span></code> of the ndarray as Python object</li> 333<li>optional <code class="docutils literal"><span class="pre">flags</span></code> bitflags</li> 334</ul> 335</td> 336</tr> 337<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">ndarray constructed with dimensions and data supplied as parameters</p> 338</td> 339</tr> 340</tbody> 341</table> 342<div class="highlight-c++"><div class="highlight"><pre><span class="kr">inline</span> <span class="n">ndarray</span> <span class="nf">from_object</span><span class="p">(</span><span class="n">object</span> <span class="k">const</span> <span class="o">&</span> <span class="n">obj</span><span class="p">,</span> <span class="n">dtype</span> <span class="k">const</span> <span class="o">&</span> <span class="n">dt</span><span class="p">,</span> <span class="kt">int</span> <span class="n">nd</span><span class="p">,</span> <span class="n">ndarray</span><span class="o">::</span><span class="n">bitflag</span> <span class="n">flags</span><span class="o">=</span><span class="n">ndarray</span><span class="o">::</span><span class="n">NONE</span><span class="p">);</span> 343</pre></div> 344</div> 345<table class="docutils field-list" frame="void" rules="none"> 346<col class="field-name" /> 347<col class="field-body" /> 348<tbody valign="top"> 349<tr class="field-odd field"><th class="field-name">Requirements:</th><td class="field-body"><p class="first">The following parameters must be supplied :</p> 350<ul class="simple"> 351<li>the <code class="docutils literal"><span class="pre">obj</span></code> Python object to convert to ndarray</li> 352<li>the dtype <code class="docutils literal"><span class="pre">dt</span></code> of the data</li> 353<li>number of dimensions <code class="docutils literal"><span class="pre">nd</span></code> of the ndarray as Python object</li> 354<li>optional <code class="docutils literal"><span class="pre">flags</span></code> bitflags</li> 355</ul> 356</td> 357</tr> 358<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">ndarray with dimensions <code class="docutils literal"><span class="pre">nd</span></code> x <code class="docutils literal"><span class="pre">nd</span></code> and suplied parameters</p> 359</td> 360</tr> 361</tbody> 362</table> 363<div class="highlight-c++"><div class="highlight"><pre><span class="kr">inline</span> <span class="n">ndarray</span> <span class="n">from_object</span><span class="p">(</span><span class="n">object</span> <span class="k">const</span> <span class="o">&</span> <span class="n">obj</span><span class="p">,</span> <span class="n">dtype</span> <span class="k">const</span> <span class="o">&</span> <span class="n">dt</span><span class="p">,</span> <span class="n">ndarray</span><span class="o">::</span><span class="n">bitflag</span> <span class="n">flags</span><span class="o">=</span><span class="n">ndarray</span><span class="o">::</span><span class="n">NONE</span><span class="p">)</span> 364</pre></div> 365</div> 366<table class="docutils field-list" frame="void" rules="none"> 367<col class="field-name" /> 368<col class="field-body" /> 369<tbody valign="top"> 370<tr class="field-odd field"><th class="field-name">Requirements:</th><td class="field-body"><p class="first">The following parameters must be supplied :</p> 371<ul class="simple"> 372<li>the <code class="docutils literal"><span class="pre">obj</span></code> Python object to convert to ndarray</li> 373<li>the dtype <code class="docutils literal"><span class="pre">dt</span></code> of the data</li> 374<li>optional <code class="docutils literal"><span class="pre">flags</span></code> bitflags</li> 375</ul> 376</td> 377</tr> 378<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">Supplied Python object as ndarray</p> 379</td> 380</tr> 381</tbody> 382</table> 383<div class="highlight-c++"><div class="highlight"><pre><span class="n">ndarray</span> <span class="nf">from_object</span><span class="p">(</span><span class="n">object</span> <span class="k">const</span> <span class="o">&</span> <span class="n">obj</span><span class="p">,</span> <span class="kt">int</span> <span class="n">nd_min</span><span class="p">,</span> <span class="kt">int</span> <span class="n">nd_max</span><span class="p">,</span> <span class="n">ndarray</span><span class="o">::</span><span class="n">bitflag</span> <span class="n">flags</span><span class="o">=</span><span class="n">ndarray</span><span class="o">::</span><span class="n">NONE</span><span class="p">);</span> 384</pre></div> 385</div> 386<table class="docutils field-list" frame="void" rules="none"> 387<col class="field-name" /> 388<col class="field-body" /> 389<tbody valign="top"> 390<tr class="field-odd field"><th class="field-name">Requirements:</th><td class="field-body"><p class="first">The following parameters must be supplied :</p> 391<ul class="simple"> 392<li>the <code class="docutils literal"><span class="pre">obj</span></code> Python object to convert to ndarray</li> 393<li>minimum number of dimensions <code class="docutils literal"><span class="pre">nd_min</span></code> of the ndarray as Python object</li> 394<li>maximum number of dimensions <code class="docutils literal"><span class="pre">nd_max</span></code> of the ndarray as Python object</li> 395<li>optional <code class="docutils literal"><span class="pre">flags</span></code> bitflags</li> 396</ul> 397</td> 398</tr> 399<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first">ndarray with supplied dimension limits and parameters</p> 400</td> 401</tr> 402<tr class="field-odd field"><th class="field-name">Note:</th><td class="field-body"><p class="first last">dtype need not be supplied here</p> 403</td> 404</tr> 405</tbody> 406</table> 407<div class="highlight-c++"><div class="highlight"><pre><span class="kr">inline</span> <span class="n">ndarray</span> <span class="nf">from_object</span><span class="p">(</span><span class="n">object</span> <span class="k">const</span> <span class="o">&</span> <span class="n">obj</span><span class="p">,</span> <span class="kt">int</span> <span class="n">nd</span><span class="p">,</span> <span class="n">ndarray</span><span class="o">::</span><span class="n">bitflag</span> <span class="n">flags</span><span class="o">=</span><span class="n">ndarray</span><span class="o">::</span><span class="n">NONE</span><span class="p">);</span> 408</pre></div> 409</div> 410<table class="docutils field-list" frame="void" rules="none"> 411<col class="field-name" /> 412<col class="field-body" /> 413<tbody valign="top"> 414<tr class="field-odd field"><th class="field-name">Requirements:</th><td class="field-body"><p class="first">The following parameters must be supplied :</p> 415<ul class="simple"> 416<li>the <code class="docutils literal"><span class="pre">obj</span></code> Python object to convert to ndarray</li> 417<li>the dtype <code class="docutils literal"><span class="pre">dt</span></code> of the data</li> 418<li>number of dimensions <code class="docutils literal"><span class="pre">nd</span></code> of the ndarray as Python object</li> 419<li>optional <code class="docutils literal"><span class="pre">flags</span></code> bitflags</li> 420</ul> 421</td> 422</tr> 423<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">ndarray of <code class="docutils literal"><span class="pre">nd</span></code> x <code class="docutils literal"><span class="pre">nd</span></code> dimensions constructed from the supplied object</p> 424</td> 425</tr> 426</tbody> 427</table> 428<div class="highlight-c++"><div class="highlight"><pre><span class="kr">inline</span> <span class="n">ndarray</span> <span class="n">from_object</span><span class="p">(</span><span class="n">object</span> <span class="k">const</span> <span class="o">&</span> <span class="n">obj</span><span class="p">,</span> <span class="n">ndarray</span><span class="o">::</span><span class="n">bitflag</span> <span class="n">flags</span><span class="o">=</span><span class="n">ndarray</span><span class="o">::</span><span class="n">NONE</span><span class="p">)</span> 429</pre></div> 430</div> 431<table class="docutils field-list" frame="void" rules="none"> 432<col class="field-name" /> 433<col class="field-body" /> 434<tbody valign="top"> 435<tr class="field-odd field"><th class="field-name">Requirements:</th><td class="field-body"><p class="first">The following parameters must be supplied :</p> 436<ul class="simple"> 437<li>the <code class="docutils literal"><span class="pre">obj</span></code> Python object to convert to ndarray</li> 438<li>optional <code class="docutils literal"><span class="pre">flags</span></code> bitflags</li> 439</ul> 440</td> 441</tr> 442<tr class="field-even field"><th class="field-name">Returns:</th><td class="field-body"><p class="first last">ndarray of same dimensions and dtype as supplied Python object</p> 443</td> 444</tr> 445</tbody> 446</table> 447</div> 448<div class="section" id="accessors"> 449<h2><a class="toc-backref" href="#id5">accessors</a></h2> 450<div class="highlight-c++"><div class="highlight"><pre><span class="kt">int</span> <span class="k">const</span> <span class="nf">shape</span><span class="p">(</span><span class="kt">int</span> <span class="n">n</span><span class="p">)</span> <span class="k">const</span><span class="p">;</span> 451</pre></div> 452</div> 453<table class="docutils field-list" frame="void" rules="none"> 454<col class="field-name" /> 455<col class="field-body" /> 456<tbody valign="top"> 457<tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">The size of the n-th dimension of the ndarray</td> 458</tr> 459</tbody> 460</table> 461<div class="highlight-c++"><div class="highlight"><pre><span class="kt">int</span> <span class="k">const</span> <span class="nf">strides</span><span class="p">(</span><span class="kt">int</span> <span class="n">n</span><span class="p">)</span> <span class="k">const</span><span class="p">;</span> 462</pre></div> 463</div> 464<table class="docutils field-list" frame="void" rules="none"> 465<col class="field-name" /> 466<col class="field-body" /> 467<tbody valign="top"> 468<tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">The stride of the nth dimension.</td> 469</tr> 470</tbody> 471</table> 472<div class="highlight-c++"><div class="highlight"><pre><span class="kt">char</span> <span class="o">*</span> <span class="nf">get_data</span><span class="p">()</span> <span class="k">const</span><span class="p">;</span> 473</pre></div> 474</div> 475<table class="docutils field-list" frame="void" rules="none"> 476<col class="field-name" /> 477<col class="field-body" /> 478<tbody valign="top"> 479<tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">Array’s raw data pointer as a char</td> 480</tr> 481<tr class="field-even field"><th class="field-name">Note:</th><td class="field-body">This returns char so stride math works properly on it.User will have to reinterpret_cast it.</td> 482</tr> 483</tbody> 484</table> 485<div class="highlight-c++"><div class="highlight"><pre><span class="n">dtype</span> <span class="nf">get_dtype</span><span class="p">()</span> <span class="k">const</span><span class="p">;</span> 486</pre></div> 487</div> 488<table class="docutils field-list" frame="void" rules="none"> 489<col class="field-name" /> 490<col class="field-body" /> 491<tbody valign="top"> 492<tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">Array’s data-type descriptor object (dtype)</td> 493</tr> 494</tbody> 495</table> 496<div class="highlight-c++"><div class="highlight"><pre><span class="n">object</span> <span class="nf">get_base</span><span class="p">()</span> <span class="k">const</span><span class="p">;</span> 497</pre></div> 498</div> 499<table class="docutils field-list" frame="void" rules="none"> 500<col class="field-name" /> 501<col class="field-body" /> 502<tbody valign="top"> 503<tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">Object that owns the array’s data, or None if the array owns its own data.</td> 504</tr> 505</tbody> 506</table> 507<div class="highlight-c++"><div class="highlight"><pre><span class="kt">void</span> <span class="nf">set_base</span><span class="p">(</span><span class="n">object</span> <span class="k">const</span> <span class="o">&</span> <span class="n">base</span><span class="p">);</span> 508</pre></div> 509</div> 510<table class="docutils field-list" frame="void" rules="none"> 511<col class="field-name" /> 512<col class="field-body" /> 513<tbody valign="top"> 514<tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">Set the object that owns the array’s data. Exercise caution while using this</td> 515</tr> 516</tbody> 517</table> 518<div class="highlight-c++"><div class="highlight"><pre><span class="n">Py_intptr_t</span> <span class="k">const</span> <span class="o">*</span> <span class="nf">get_shape</span><span class="p">()</span> <span class="k">const</span><span class="p">;</span> 519</pre></div> 520</div> 521<table class="docutils field-list" frame="void" rules="none"> 522<col class="field-name" /> 523<col class="field-body" /> 524<tbody valign="top"> 525<tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">Shape of the array as an array of integers</td> 526</tr> 527</tbody> 528</table> 529<div class="highlight-c++"><div class="highlight"><pre><span class="n">Py_intptr_t</span> <span class="k">const</span> <span class="o">*</span> <span class="nf">get_strides</span><span class="p">()</span> <span class="k">const</span><span class="p">;</span> 530</pre></div> 531</div> 532<table class="docutils field-list" frame="void" rules="none"> 533<col class="field-name" /> 534<col class="field-body" /> 535<tbody valign="top"> 536<tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">Stride of the array as an array of integers</td> 537</tr> 538</tbody> 539</table> 540<div class="highlight-c++"><div class="highlight"><pre><span class="kt">int</span> <span class="k">const</span> <span class="nf">get_nd</span><span class="p">()</span> <span class="k">const</span><span class="p">;</span> 541</pre></div> 542</div> 543<table class="docutils field-list" frame="void" rules="none"> 544<col class="field-name" /> 545<col class="field-body" /> 546<tbody valign="top"> 547<tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">Number of array dimensions</td> 548</tr> 549</tbody> 550</table> 551<div class="highlight-c++"><div class="highlight"><pre><span class="n">bitflag</span> <span class="k">const</span> <span class="nf">get_flags</span><span class="p">()</span> <span class="k">const</span><span class="p">;</span> 552</pre></div> 553</div> 554<table class="docutils field-list" frame="void" rules="none"> 555<col class="field-name" /> 556<col class="field-body" /> 557<tbody valign="top"> 558<tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">Array flags</td> 559</tr> 560</tbody> 561</table> 562<div class="highlight-c++"><div class="highlight"><pre><span class="kr">inline</span> <span class="n">ndarray</span><span class="o">::</span><span class="n">bitflag</span> <span class="k">operator</span><span class="o">|</span><span class="p">(</span><span class="n">ndarray</span><span class="o">::</span><span class="n">bitflag</span> <span class="n">a</span><span class="p">,</span> <span class="n">ndarray</span><span class="o">::</span><span class="n">bitflag</span> <span class="n">b</span><span class="p">)</span> 563</pre></div> 564</div> 565<table class="docutils field-list" frame="void" rules="none"> 566<col class="field-name" /> 567<col class="field-body" /> 568<tbody valign="top"> 569<tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">bitflag logically OR-ed as (a | b)</td> 570</tr> 571</tbody> 572</table> 573<div class="highlight-c++"><div class="highlight"><pre><span class="kr">inline</span> <span class="n">ndarray</span><span class="o">::</span><span class="n">bitflag</span> <span class="k">operator</span><span class="o">&</span><span class="p">(</span><span class="n">ndarray</span><span class="o">::</span><span class="n">bitflag</span> <span class="n">a</span><span class="p">,</span> <span class="n">ndarray</span><span class="o">::</span><span class="n">bitflag</span> <span class="n">b</span><span class="p">)</span> 574</pre></div> 575</div> 576<table class="docutils field-list" frame="void" rules="none"> 577<col class="field-name" /> 578<col class="field-body" /> 579<tbody valign="top"> 580<tr class="field-odd field"><th class="field-name">Returns:</th><td class="field-body">bitflag logically AND-ed as (a & b)</td> 581</tr> 582</tbody> 583</table> 584</div> 585<div class="section" id="example-s"> 586<h2><a class="toc-backref" href="#id6">Example(s)</a></h2> 587<div class="highlight-c++"><div class="highlight"><pre><span class="k">namespace</span> <span class="n">p</span> <span class="o">=</span> <span class="n">boost</span><span class="o">::</span><span class="n">python</span><span class="p">;</span> 588<span class="k">namespace</span> <span class="n">np</span> <span class="o">=</span> <span class="n">boost</span><span class="o">::</span><span class="n">python</span><span class="o">::</span><span class="n">numpy</span><span class="p">;</span> 589 590<span class="n">p</span><span class="o">::</span><span class="n">object</span> <span class="n">tu</span> <span class="o">=</span> <span class="n">p</span><span class="o">::</span><span class="n">make_tuple</span><span class="p">(</span><span class="sc">'a'</span><span class="p">,</span><span class="sc">'b'</span><span class="p">,</span><span class="sc">'c'</span><span class="p">)</span> <span class="p">;</span> 591<span class="n">np</span><span class="o">::</span><span class="n">ndarray</span> <span class="n">example_tuple</span> <span class="o">=</span> <span class="n">np</span><span class="o">::</span><span class="n">array</span> <span class="p">(</span><span class="n">tu</span><span class="p">)</span> <span class="p">;</span> 592 593<span class="n">p</span><span class="o">::</span><span class="n">list</span> <span class="n">l</span> <span class="p">;</span> 594<span class="n">np</span><span class="o">::</span><span class="n">ndarray</span> <span class="n">example_list</span> <span class="o">=</span> <span class="n">np</span><span class="o">::</span><span class="n">array</span> <span class="p">(</span><span class="n">l</span><span class="p">)</span> <span class="p">;</span> 595 596<span class="n">np</span><span class="o">::</span><span class="n">dtype</span> <span class="n">dt</span> <span class="o">=</span> <span class="n">np</span><span class="o">::</span><span class="n">dtype</span><span class="o">::</span><span class="n">get_builtin</span><span class="o"><</span><span class="kt">int</span><span class="o">></span><span class="p">();</span> 597<span class="n">np</span><span class="o">::</span><span class="n">ndarray</span> <span class="n">example_list1</span> <span class="o">=</span> <span class="n">np</span><span class="o">::</span><span class="n">array</span> <span class="p">(</span><span class="n">l</span><span class="p">,</span><span class="n">dt</span><span class="p">);</span> 598 599<span class="kt">int</span> <span class="n">data</span><span class="p">[]</span> <span class="o">=</span> <span class="p">{</span><span class="mi">1</span><span class="p">,</span><span class="mi">2</span><span class="p">,</span><span class="mi">3</span><span class="p">,</span><span class="mi">4</span><span class="p">}</span> <span class="p">;</span> 600<span class="n">p</span><span class="o">::</span><span class="n">tuple</span> <span class="n">shape</span> <span class="o">=</span> <span class="n">p</span><span class="o">::</span><span class="n">make_tuple</span><span class="p">(</span><span class="mi">4</span><span class="p">)</span> <span class="p">;</span> 601<span class="n">p</span><span class="o">::</span><span class="n">tuple</span> <span class="n">stride</span> <span class="o">=</span> <span class="n">p</span><span class="o">::</span><span class="n">make_tuple</span><span class="p">(</span><span class="mi">4</span><span class="p">)</span> <span class="p">;</span> 602<span class="n">p</span><span class="o">::</span><span class="n">object</span> <span class="n">own</span> <span class="p">;</span> 603<span class="n">np</span><span class="o">::</span><span class="n">ndarray</span> <span class="n">data_ex</span> <span class="o">=</span> <span class="n">np</span><span class="o">::</span><span class="n">from_data</span><span class="p">(</span><span class="n">data</span><span class="p">,</span><span class="n">dt</span><span class="p">,</span><span class="n">shape</span><span class="p">,</span><span class="n">stride</span><span class="p">,</span><span class="n">own</span><span class="p">);</span> 604 605<span class="kt">uint8_t</span> <span class="n">mul_data</span><span class="p">[][</span><span class="mi">4</span><span class="p">]</span> <span class="o">=</span> <span class="p">{{</span><span class="mi">1</span><span class="p">,</span><span class="mi">2</span><span class="p">,</span><span class="mi">3</span><span class="p">,</span><span class="mi">4</span><span class="p">},{</span><span class="mi">5</span><span class="p">,</span><span class="mi">6</span><span class="p">,</span><span class="mi">7</span><span class="p">,</span><span class="mi">8</span><span class="p">},{</span><span class="mi">1</span><span class="p">,</span><span class="mi">3</span><span class="p">,</span><span class="mi">5</span><span class="p">,</span><span class="mi">7</span><span class="p">}};</span> 606<span class="n">shape</span> <span class="o">=</span> <span class="n">p</span><span class="o">::</span><span class="n">make_tuple</span><span class="p">(</span><span class="mi">3</span><span class="p">,</span><span class="mi">2</span><span class="p">)</span> <span class="p">;</span> 607<span class="n">stride</span> <span class="o">=</span> <span class="n">p</span><span class="o">::</span><span class="n">make_tuple</span><span class="p">(</span><span class="mi">4</span><span class="p">,</span><span class="mi">2</span><span class="p">)</span> <span class="p">;</span> 608<span class="n">np</span><span class="o">::</span><span class="n">dtype</span> <span class="n">dt1</span> <span class="o">=</span> <span class="n">np</span><span class="o">::</span><span class="n">dtype</span><span class="o">::</span><span class="n">get_builtin</span><span class="o"><</span><span class="kt">uint8_t</span><span class="o">></span><span class="p">();</span> 609 610<span class="n">np</span><span class="o">::</span><span class="n">ndarray</span> <span class="n">mul_data_ex</span> <span class="o">=</span> <span class="n">np</span><span class="o">::</span><span class="n">from_data</span><span class="p">(</span><span class="n">mul_data</span><span class="p">,</span><span class="n">dt1</span><span class="p">,</span> <span class="n">p</span><span class="o">::</span><span class="n">make_tuple</span><span class="p">(</span><span class="mi">3</span><span class="p">,</span><span class="mi">4</span><span class="p">),</span><span class="n">p</span><span class="o">::</span><span class="n">make_tuple</span><span class="p">(</span><span class="mi">4</span><span class="p">,</span><span class="mi">1</span><span class="p">),</span><span class="n">p</span><span class="o">::</span><span class="n">object</span><span class="p">());</span> 611<span class="n">mul_data_ex</span> <span class="o">=</span> <span class="n">np</span><span class="o">::</span><span class="n">from_data</span><span class="p">(</span><span class="n">mul_data</span><span class="p">,</span><span class="n">dt1</span><span class="p">,</span> <span class="n">shape</span><span class="p">,</span><span class="n">stride</span><span class="p">,</span><span class="n">p</span><span class="o">::</span><span class="n">object</span><span class="p">());</span> 612</pre></div> 613</div> 614</div> 615</div> 616 617 618 <div class="navbar" style="text-align:right;"> 619 620 621 <a class="prev" title="dtype" href="dtype.html"><img src="../_static/prev.png" alt="prev"/></a> 622 <a class="up" title="Boost.Python NumPy extension Reference" href="index.html"><img src="../_static/up.png" alt="up"/></a> 623 <a class="next" title="unary_ufunc" href="unary_ufunc.html"><img src="../_static/next.png" alt="next"/></a> 624 625 </div> 626 </div> 627 </body> 628</html>