From: Keith G. <kwg...@gm...> - 2006-06-28 19:23:40
|
On 6/28/06, Travis Oliphant <oli...@ee...> wrote: > Keith Goodman wrote: > > >On 6/28/06, Pau Gargallo <pau...@gm...> wrote: > > > > > >>i don't know why 'where' is returning matrices. > >>if you use: > >> > >> > >> > >>>>>idx = where(y.A > 0.5)[0] > >>>>> > >>>>> > >>everything will work fine (I guess) > >> > >> > > > >What about the second issue? Is this expected behavior? > > > > > > > >>>idx > >>> > >>> > >array([0, 1, 2]) > > > > > > > >>>y > >>> > >>> > > > >matrix([[ 0.63731308], > > [ 0.34282663], > > [ 0.53366791]]) > > > > > > > >>>y[idx] > >>> > >>> > > > >matrix([[ 0.63731308], > > [ 0.34282663], > > [ 0.53366791]]) > > > > > > > >>>y[idx,0] > >>> > >>> > >matrix([[ 0.63731308, 0.34282663, 0.53366791]]) > > > >I was expecting a column vector. > > > > > > > This should be better behaved now in SVN. Thanks for the reports. Now numpy can do y[y > 0.5] instead of y[where(y.A > 0.5)[0]] where, for example, y = asmatrix(rand(3,1)). I know I'm pushing my luck here. But one more feature would make this perfect. Currently y[y>0.5,:] returns the first column even if y has more than one column. Returning all columns would make it perfect. Example: >> y matrix([[ 0.38828902, 0.91649964], [ 0.41074001, 0.7105919 ], [ 0.15460833, 0.16746956]]) >> y[y[:,1]>0.5,:] matrix([[ 0.38828902], [ 0.41074001]]) A better answer for matrix users would be: >> y[(0,1),:] matrix([[ 0.38828902, 0.91649964], [ 0.41074001, 0.7105919 ]]) |