On 2009-02-17 14:36, Nick Matzke wrote:
Looks like "compress" is the right numpy function, but it took forever
for me to find it...

x = array([[1,2,3], [4,5,6], [7,8,9]], dtype=float)
compress([1,2], x, axis=1)

result:
array([[ 1., 2.],
[ 4., 5.],
[ 7., 8.]])

No, that's actually not correct. compress() takes a boolean mask, not integer indices. It just happens to be the case that compress() implicitly appends Falses to the end if the lengths don't match. Also, numpy indices are 0-indexed just like most Python sequences.

If you need to specify integer indices, you need this:

In [4]: x[:,[0,1]]
Out[4]:
array([[ 1.,  2.],
       [ 4.,  5.],
       [ 7.,  8.]])

If you have more numpy questions, you should ask on the numpy mailing list.

  http://www.scipy.org/Mailing_Lists

--
Robert Kern

"I have come to believe that the whole world is an enigma, a harmless enigma
 that is made terrible by our own mad attempt to interpret it as though it had
 an underlying truth."
  -- Umberto Eco

--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to