On Fri, Mar 6, 2009 at 6:18 PM, Stéfan van der Walt
<stefan@sun.ac.za> wrote:
Hi all,
The following code succeeds, while I thought it should fail:
a = np.zeros(6) # real
b= np.arange(6)*(2+3j) # complex
a[1] = b[1] # shouldn't this break?
What is the rationale behind this behaviour?
The same as this:
In [1]: a = zeros(2)
In [2]: a[0] = '1'
In [3]: a
Out[3]: array([ 1., 0.])
The question is whether such usage is likely in error, calling for an exception, or a useful convenience to avoid a cast. I tend to think that casts should be made explicit in such cases but it's a fine line. What about this?
In [5]: a = zeros(2)
In [6]: a[0] = 1
In [7]: a
Out[7]: array([ 1., 0.])
Should a cast be required? What if the lhs is a float32 and the rhs is a python float?
Chuck