<br><br><div class="gmail_quote">On Fri, Nov 23, 2012 at 7:53 AM, Sebastian Berg <span dir="ltr">&lt;<a href="mailto:sebastian@sipsolutions.net" target="_blank">sebastian@sipsolutions.net</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div class="HOEnZb"><div class="h5">On Fri, 2012-11-23 at 10:49 +0000, Nathaniel Smith wrote:<br>
&gt; On 23 Nov 2012 03:34, &quot;Charles R Harris&quot; &lt;<a href="mailto:charlesr.harris@gmail.com">charlesr.harris@gmail.com</a>&gt;<br>
&gt; wrote:<br>
&gt; &gt;<br>
&gt; &gt; Examples,<br>
&gt; &gt;<br>
&gt; &gt; In [13]: ones(()).flags.writeable<br>
&gt; &gt; Out[13]: True<br>
&gt; &gt;<br>
&gt; &gt; In [14]: (-ones(())).flags.writeable<br>
&gt; &gt; Out[14]: False<br>
&gt; &gt;<br>
&gt; &gt; In [15]: (-1*ones(())).flags.writeable<br>
&gt; &gt; Out[15]: False<br>
&gt; &gt;<br>
&gt; &gt; In [16]: (1 + ones(())).flags.writeable<br>
&gt; &gt; Out[16]: False<br>
&gt; &gt;<br>
&gt; &gt; In [17]: array(1)<br>
&gt; &gt; Out[17]: array(1)<br>
&gt; &gt;<br>
&gt; &gt; In [18]: array(1).shape<br>
&gt; &gt; Out[18]: ()<br>
&gt; &gt;<br>
&gt; &gt; In [19]: array(1).flags.writeable<br>
&gt; &gt; Out[19]: True<br>
&gt;<br>
&gt; Looks like a bug in the ufunc output value setup code or something?<br>
&gt;<br>
</div></div>It might be possible to rethink when (or if) to convert 0-d array to a<br>
scalar. However, at the moment as far as I understand many functions<br>
generally do not return 0-d arrays but scalars. Which makes sense<br>
because mostly we would rather use scalars then 0-d arrays as they are<br>
closer to typical python (hashable and subclasses of python types).<br>
<br>
Of course the way this is done is not aware of what is put in (scalar<br>
vs. 0-d array), since all input is converted to an array normally, which<br>
means that most (all?) functions either return 0-d arrays or scalars and<br>
are never aware if the original input was a scalar or an array. Maybe<br>
there could be a np.asarray_or_scalar or such so that its easier to give<br>
the same output type as the original input type?<br>
<br></blockquote><div><br>Yes, that is what looks to be the case. It breaks the scalar + array -&gt; array rule that applies to higher dimensional arrays. I&#39;m not sure what should be done for this corner case, especially as the code in question is rather involved...<br>
<br>Chuck <br></div><br></div>