From: Christian K. <ck...@ho...> - 2006-09-22 02:14:54
|
Hi, from 1.0b1 to 1.0rc1 the default behaviour of take seems to have changed when omitting the axis argument: In [13]: a = reshape(arange(12),(3,4)) In [14]: take(a,[2,3]) Out[14]: array([2, 3]) In [15]: take(a,[2,3],1) Out[15]: array([[ 2, 3], [ 6, 7], [10, 11]]) Is this intended? Christian |
From: Bill B. <wb...@gm...> - 2006-09-22 02:37:24
|
Yep, check the release notes: http://www.scipy.org/ReleaseNotes/NumPy_1.0 search for 'take' on that page to find out what others have changed as well. --bb On 9/22/06, Christian Kristukat <ck...@ho...> wrote: > Hi, > from 1.0b1 to 1.0rc1 the default behaviour of take seems to have changed when > omitting the axis argument: > > In [13]: a = reshape(arange(12),(3,4)) > > In [14]: take(a,[2,3]) > Out[14]: array([2, 3]) > > In [15]: take(a,[2,3],1) > Out[15]: > array([[ 2, 3], > [ 6, 7], > [10, 11]]) > > Is this intended? > > Christian > > > > ------------------------------------------------------------------------- > Take Surveys. Earn Cash. Influence the Future of IT > Join SourceForge.net's Techsay panel and you'll get the chance to share your > opinions on IT & business topics through brief surveys -- and earn cash > http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV > _______________________________________________ > Numpy-discussion mailing list > Num...@li... > https://lists.sourceforge.net/lists/listinfo/numpy-discussion > |
From: Christian K. <ck...@ho...> - 2006-09-22 03:46:02
|
Bill Baxter <wbaxter <at> gmail.com> writes: > > Yep, check the release notes: > http://www.scipy.org/ReleaseNotes/NumPy_1.0 > search for 'take' on that page to find out what others have changed as well. > --bb Ok. Does axis=None then mean, that take(a, ind) operates on the flattened array? This it at least what it seem to be. I noticed that the ufunc behaves differently. a.take(ind) and a.take(ind, axis=0) behave the same, so the default argument to axis is 0 rather than None. Christian |
From: Travis O. <oli...@ie...> - 2006-09-22 17:13:25
|
Christian Kristukat wrote: > Bill Baxter <wbaxter <at> gmail.com> writes: > > >> Yep, check the release notes: >> http://www.scipy.org/ReleaseNotes/NumPy_1.0 >> search for 'take' on that page to find out what others have changed as well. >> --bb >> > > Ok. Does axis=None then mean, that take(a, ind) operates on the flattened array? > This it at least what it seem to be. I noticed that the ufunc behaves > differently. a.take(ind) and a.take(ind, axis=0) behave the same, so the default > argument to axis is 0 rather than None. > What do you mean. There is no "ufunc" take. There is a function take that just calls the method. The default arguments for all functions that match methods are the same as the methods (which means axis=None). However, in oldnumeric (which pylab imports by the way), the default axes are the same as they were in Numeric. Also, if you have a 1-d array, then the axis argument doesn't make any difference. Please clarify what you are saying to be sure we don't have a bug floating around. -Travis |
From: Christian K. <ck...@ho...> - 2006-09-23 02:00:44
|
Travis Oliphant <oliphant.travis <at> ieee.org> writes: > > Christian Kristukat wrote: > > Bill Baxter <wbaxter <at> gmail.com> writes: > > > > > >> Yep, check the release notes: > >> http://www.scipy.org/ReleaseNotes/NumPy_1.0 > >> search for 'take' on that page to find out what others have changed as well. > >> --bb > >> > > > > Ok. Does axis=None then mean, that take(a, ind) operates on the > > flattened array? > > This it at least what it seem to be. I noticed that the ufunc behaves > > differently. a.take(ind) and a.take(ind, axis=0) behave the same, so > > the default > > argument to axis is 0 rather than None. > > > > What do you mean. There is no "ufunc" take. There is a function take > that just calls the method. The default arguments for all functions Sorry, I never really read about what are ufuncs. I thought those are class methods of the ndarray objects... Anyway, I was refering to the following difference: In [7]: a Out[7]: array([[ 0, 1, 2, 3, 4, 5], [ 6, 7, 8, 9, 10, 11]]) In [8]: a.take([0]) Out[8]: array([[0, 1, 2, 3, 4, 5]]) In [9]: take(a,[0]) Out[9]: array([0]) To be sure I understood: Does axis=None then mean, that take operates on the flattened array? Christian |
From: Travis O. <oli...@ie...> - 2006-09-23 03:31:35
|
Christian Kristukat wrote: >>> Ok. Does axis=None then mean, that take(a, ind) operates on the >>> flattened array? >>> Yes, that is correct. > Sorry, I never really read about what are ufuncs. I thought those are class > methods of the ndarray objects... Anyway, I was refering to the following > difference: > > In [7]: a > Out[7]: > array([[ 0, 1, 2, 3, 4, 5], > [ 6, 7, 8, 9, 10, 11]]) > > In [8]: a.take([0]) > Out[8]: array([[0, 1, 2, 3, 4, 5]]) > > In [9]: take(a,[0]) > Out[9]: array([0]) > Doh!. That is a bug. take(a,[0]) is correct a.take([0]) is not correct. -Travis |