<div dir="ltr">You will need to convert <span style="color:rgb(33,33,33)">"a[(2,3,5),][mask]" into a single indexing expression, e.g, by using utility functions like np.nonzero() on mask. NumPy can't support assignment in chained indexing.</span></div><br><div class="gmail_quote"><div dir="ltr">On Tue, Jun 19, 2018 at 1:25 PM Emil Sidky <<a href="mailto:sidky@uchicago.edu">sidky@uchicago.edu</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hello,<br>
The following is an example where an array element assignment didn't work<br>
as I expected.<br>
Create a 6 x 3 matrix:<br>
<br>
In [70]: a = randn(6,3)<br>
<br>
In [71]: a<br>
Out[71]:<br>
array([[ 1.73266816, 0.948849 , 0.69188222],<br>
[-0.61840161, -0.03449826, 0.15032552],<br>
[ 0.4963306 , 0.77028209, -0.63076396],<br>
[-1.92273602, -1.03146536, 0.27744612],<br>
[ 0.70736325, 1.54687964, -0.75573888],<br>
[ 0.16316043, -0.34814532, 0.3683143 ]])<br>
<br>
Create a 3x3 boolean array:<br>
In [72]: mask = randn(3,3)>0.<br>
<br>
In [73]: mask<br>
Out[73]:<br>
array([[ True, True, True],<br>
[False, True, True],<br>
[ True, False, True]], dtype=bool)<br>
<br>
Try to modify elements of "a" with the following line:<br>
In [74]: a[(2,3,5),][mask] = 1.<br>
No elements are changed in "a":<br>
In [75]: a<br>
Out[75]:<br>
array([[ 1.73266816, 0.948849 , 0.69188222],<br>
[-0.61840161, -0.03449826, 0.15032552],<br>
[ 0.4963306 , 0.77028209, -0.63076396],<br>
[-1.92273602, -1.03146536, 0.27744612],<br>
[ 0.70736325, 1.54687964, -0.75573888],<br>
[ 0.16316043, -0.34814532, 0.3683143 ]])<br>
<br>
Instead try to modify elements of "a" with this line:<br>
In [76]: a[::2,][mask] = 1.<br>
<br>
This time it works:<br>
In [77]: a<br>
Out[77]:<br>
array([[ 1. , 1. , 1. ],<br>
[-0.61840161, -0.03449826, 0.15032552],<br>
[ 0.4963306 , 1. , 1. ],<br>
[-1.92273602, -1.03146536, 0.27744612],<br>
[ 1. , 1.54687964, 1. ],<br>
[ 0.16316043, -0.34814532, 0.3683143 ]])<br>
<br>
<br>
Is there a way where I can modify the elements of "a" selected by an <br>
expression like "a[(2,3,5),][mask]" ?<br>
<br>
Thanks , Emil<br>
_______________________________________________<br>
NumPy-Discussion mailing list<br>
<a href="mailto:NumPy-Discussion@python.org" target="_blank">NumPy-Discussion@python.org</a><br>
<a href="https://mail.python.org/mailman/listinfo/numpy-discussion" rel="noreferrer" target="_blank">https://mail.python.org/mailman/listinfo/numpy-discussion</a><br>
</blockquote></div>