<br><br><div><span class="gmail_quote">On 1/8/07, <b class="gmail_sendername">Tim Leslie</b> &lt;<a href="mailto:tim.leslie@gmail.com">tim.leslie@gmail.com</a>&gt; wrote:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
I get different behaviour from asarray depending on whether I pass in<br>a list or an array, Additionally, neither of them give me the expected<br>results, which is a TypeError complaining about being unable to use<br>complex values as floats. Can someone shed some light on this.
</blockquote><div><br>As to the type, the numbers are automatically cast without warning. It is useful to be able to force this, and the easiest is by default without raising an error. It is also the Numarray way when using just the array constructor. The cast for complex numbers works the same way as the corresponding .astype() method. I suppose it might make sense to raise a warning when converting complex to real. Anyway, the following is expected.
<br><br><span style="font-family: courier new,monospace;">In [11]: a = arange(3).astype(double)<br><br>In [12]: b = asarray(a, dtype=float32)<br><br>In [13]: a = a + 1j<br><br>In [14]: b = asarray(a, dtype=float32)<br></span>
<span style="font-family: courier new,monospace;"></span><br><br>Note that the cast to single precision from double also loses precision without warning. Given that, the fact that<br><br><span style="font-family: courier new,monospace;">
In [16]: b = array([1j, 2, 3], dtype=float32)</span><br><br>raises an error should probably be considered a bug due to 1j not being recognized as a number.<br><br>Chuck<br></div><br></div><br>