[Numpy-discussion] Selecting columns of a matrix (original) (raw)

Bill Baxter wbaxter at gmail.com
Tue Jun 20 23:33:43 EDT 2006


I think that one's on the NumPy for Matlab users, no? 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.

--bb

On 6/21/06, Keith Goodman <kwgoodman at gmail.com> 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?

-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://mail.python.org/pipermail/numpy-discussion/attachments/20060621/4a5bcd66/attachment.html>



More information about the NumPy-Discussion mailing list