[Numpy-discussion] Unexpected change of array used to index another array
Webb Sprague
webb.sprague at gmail.com
Sat Apr 8 20:02:11 EDT 2006
Hi.
I indexed an 10 x 10(called bigM below) with another array (OFFS_TMP
below). I suppose because OFFS_TMP has negative numbers, it was
changed to cycle around to 9 wherever there is a negative 1 (which is
the forward version of -1 if you are a 10 x 10 matrix). You can
analogous behavior with -2 => 8, etc. Is changing the indexing matrix
really the correct behavior? The result of using the index seems to
be fine. Has this story been told already and I didn't know it?
Below is my ipython session.
In [57]: OFFS_TMP
Out[57]:
array([[-1, 1],
[ 0, 1],
[ 1, 1],
[-1, 0],
[ 0, 0],
[ 1, 0],
[-1, -1],
[ 0, -1],
[ 1, -1]])
In [58]: bigM[OFFS_TMP]
Out[58]:
array([[[False, True, False, False, True, False, True, True, True, False],
[False, True, False, True, True, False, False, False, True, True]],
[[True, False, True, False, True, True, False, False, False, True],
[False, True, False, True, True, False, False, False, True, True]],
[[False, True, False, True, True, False, False, False, True, True],
[False, True, False, True, True, False, False, False, True, True]],
[[False, True, False, False, True, False, True, True, True, False],
[True, False, True, False, True, True, False, False, False, True]],
[[True, False, True, False, True, True, False, False, False, True],
[True, False, True, False, True, True, False, False, False, True]],
[[False, True, False, True, True, False, False, False, True, True],
[True, False, True, False, True, True, False, False, False, True]],
[[False, True, False, False, True, False, True, True, True, False],
[False, True, False, False, True, False, True, True, True, False]],
[[True, False, True, False, True, True, False, False, False, True],
[False, True, False, False, True, False, True, True, True, False]],
[[False, True, False, True, True, False, False, False, True, True],
[False, True, False, False, True, False, True, True, True,
False]]], dtype=bool)
In [59]: OFFS_TMP
Out[59]:
array([[9, 1],
[0, 1],
[1, 1],
[9, 0],
[0, 0],
[1, 0],
[9, 9],
[0, 9],
[1, 9]])
More information about the NumPy-Discussion
mailing list