<div dir="ltr">On Wed, Aug 20, 2014 at 10:21 AM, Mika S <span dir="ltr"><<a href="mailto:siddhupiddu@gmail.com" target="_blank">siddhupiddu@gmail.com</a>></span> wrote:<br><br><div class="gmail_extra"><div class="gmail_quote">
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">How do I pass a double array as a numpy list from C# (calling python code from c#) or passing something that can become a numpy list with minimal overhead.<div>
<br></div></div></blockquote><div><br></div><div>Based on input from an earlier thread here, I settled on using Marshal.Copy:<br></div><div><br><pre><span class="">def</span> <span class="">ndarray_ptr</span><span class="">(</span><span class="">a</span><span class="">):</span>
<a name="cl-39"></a>    <span class="">'''Return a .NET pointer to the underlying ndarray data.'''</span>
<a name="cl-40"></a>    <span class="">return</span> <span class="">IntPtr</span><span class="">.</span><span class="">__overloads__</span><span class="">[</span><span class="">int</span><span class="">](</span><span class="">a</span><span class="">.</span><span class="">__array_interface__</span><span class="">[</span><span class="">'data'</span><span class="">][</span><span class="">0</span><span class="">])</span>
<a name="cl-41"></a>
<a name="cl-42"></a><span class="">def</span> <span class="">marshal_to_ndarray</span><span class="">(</span><span class="">src</span><span class="">):</span>
<a name="cl-43"></a>    <span class="">n</span> <span class="">=</span> <span class="">len</span><span class="">(</span><span class="">src</span><span class="">)</span>
<a name="cl-44"></a>    <span class="">dest</span> <span class="">=</span> <span class="">np</span><span class="">.</span><span class="">empty</span><span class="">(</span><span class="">n</span><span class="">,</span> <span class="">dtype</span><span class="">=</span><span class="">'f8'</span><span class="">)</span><br>
 <a name="cl-45"></a>   <span class="">Marshal</span><span class="">.</span><span class="">Copy</span><span class="">(</span><span class="">src</span><span class="">,</span> <span class="">0</span><span class="">,</span> <span class="">ndarray_ptr</span><span class="">(</span><span class="">dest</span><span class="">),</span> <span class="">n</span><span class="">)</span>
<a name="cl-46"></a>    <span class="">return</span> <span class="">dest</span>
<a name="cl-47"></a></pre>Dave Cook<br></div></div></div></div>