[Numpy-discussion] Numpify this?
Robert Kern
robert.kern at gmail.com
Sun May 18 04:08:35 EDT 2008
On Sun, May 18, 2008 at 2:59 AM, Matt Crane <matt at snapbug.geek.nz> wrote:
> Sorry, I should have mentioned that no, the matching rows won't always
> be in the same position.
Okay, then it's just a little bit more complicated.
In [18]: from numpy import *
In [19]: a = array([[1, 10], [2, 20], [3, 30], [3, 40], [4, 50]])
In [20]: b = array([[2, 60], [1, 70], [5, 80], [6, 90], [7, 100], [3, 110]])
In [21]: m = a[:,0] == b[:,0][:,newaxis]
In [22]: m
Out[22]:
array([[False, True, False, False, False],
[ True, False, False, False, False],
[False, False, False, False, False],
[False, False, False, False, False],
[False, False, False, False, False],
[False, False, True, True, False]], dtype=bool)
In [23]: i, j = nonzero(m)
In [24]: i
Out[24]: array([0, 1, 5, 5])
In [25]: j
Out[25]: array([1, 0, 2, 3])
In [26]: column_stack([a[j,1], b[i,1]])
Out[26]:
array([[ 20, 60],
[ 10, 70],
[ 30, 110],
[ 40, 110]])
--
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
More information about the NumPy-Discussion
mailing list