http://www.scipy.org/NumPy_for_Matlab_Users
>>> import numpy as num
>>> a = num.arange (10).reshape(2,5)
>>> a
array([[0, 1, 2, 3, 4],
[5, 6, 7, 8, 9]])
>>> v = num.rand(5)
>>> v
array([ 0.10934855, 0.55719644, 0.7044047 , 0.19250088, 0.94636972])
>>> num.where(v>0.5)
(array([1, 2, 4]),)
>>> a[:,num.where(v>0.5)]
array([[[1, 2, 4]],
[[6, 7, 9]]])
Seems it grows an extra set of brackets for some reason. Squeeze will get rid of them.
>>> a[:,num.where(v>0.5)].squeeze()
array([[1, 2, 4],
[6, 7, 9]])
Not sure why the squeeze is needed. Maybe there's a better way.
>>> import numpy as num
>>> a = num.arange (10).reshape(2,5)
>>> a
array([[0, 1, 2, 3, 4],
[5, 6, 7, 8, 9]])
>>> v = num.rand(5)
>>> v
array([ 0.10934855, 0.55719644, 0.7044047 , 0.19250088, 0.94636972])
>>> num.where(v>0.5)
(array([1, 2, 4]),)
>>> a[:,num.where(v>0.5)]
array([[[1, 2, 4]],
[[6, 7, 9]]])
Seems it grows an extra set of brackets for some reason. Squeeze will get rid of them.
>>> a[:,num.where(v>0.5)].squeeze()
array([[1, 2, 4],
[6, 7, 9]])
Not sure why the squeeze is needed. Maybe there's a better way.
--bb
On 6/21/06, Keith Goodman <[EMAIL PROTECTED]> wrote:
I have a matrix M and a vector (n by 1 matrix) V. I want to form a new
matrix that contains the columns of M for which V > 0.
One way to do that in Octave is M(:, find(V > 0)). How is it done in numpy?
_______________________________________________ Numpy-discussion mailing list Numpy-discussion@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/numpy-discussion