On 2014/07/06, 11:43 AM, Nathaniel Smith wrote:
> On Sun, Jul 6, 2014 at 9:35 PM, Daniel da Silva
> <var.mail.dan...@gmail.com> wrote:
>> The idea is that there be a short-hand for creating arrays as there is for
>> matrices:
>>
>>    np.mat('.2 .7 .1; .3 .5 .2; .1 .1 .9')
>>
>> It was suggested in GitHub issue #4817 in light that it would be beneficial
>> to beginners and to presenters during demonstrations.  In GitHub pull
>> request #484, I implemented this as the np.arr function.
>>
>> Does anyone have any feedback on the API details? Some examples from my
>> implementation follow.
>>
>>>>> np.arr('3; 4; 5')
>>      array([[3],
>>             [4],
>>             [5]])
>>
>>>>> np.arr('3; 4; 5', dtype=float)
>>      array([[ 3.],
>>             [ 4.],
>>             [ 5.]])
>>
>>>>> np.arr('1 0 0; 0 1 0; 0 0 1')
>>      array([[1, 0, 0],
>>             [0, 1, 0],
>>             [0, 0, 1]])
>>
>>>>> np.arr('4, 5; 6, 7')
>>      array([[4, 5],
>>             [6, 7]])
>
> It occurs to me that np.mat always returns a 2d matrix, but for arrays
> there are more options.
>
> What should np.arr('1 2 3') return? a 1d array or a 2d row vector?

I would say 1d array.  This is numpy, not numpy.matrix.

> (Maybe np.arr('1 2 3;') should give the row-vector?)

Yes, it is reasonable that a semicolon should trigger 2d.

>
> Should there be some way to write 3d or higher-d arrays?

No, there should not.  This is for quick demos and that sort of thing. 
It is not a substitute for np.array().  (I'm not entirely convinced 
np.arr() is a good idea at all; but if it is, it must be kept simple.)

A possible downside for beginners is that this might delay their 
understanding that the commas are needed for np.array([1, 2, 3]).

Eric

>
> -n
>

_______________________________________________
NumPy-Discussion mailing list
NumPy-Discussion@scipy.org
http://mail.scipy.org/mailman/listinfo/numpy-discussion

Reply via email to