擅长:python、mysql、java
<p>另一种方法是使用两次索引:</p>
<pre><code>In [167]: foo[rsum<165][:,csum>80]
Out[167]:
array([[ 6, 7, 8, 9, 10],
[12, 14, 16, 18, 20]])
</code></pre>
<p>它是可读的,而且相当快:</p>
^{pr2}$
<hr/>
<p>PS:创建<code>foo</code>的更快方法是</p>
<pre><code>In [31]: np.multiply.outer(range(1,6),range(1,11))
Out[31]:
array([[ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10],
[ 2, 4, 6, 8, 10, 12, 14, 16, 18, 20],
[ 3, 6, 9, 12, 15, 18, 21, 24, 27, 30],
[ 4, 8, 12, 16, 20, 24, 28, 32, 36, 40],
[ 5, 10, 15, 20, 25, 30, 35, 40, 45, 50]])
In [32]: %timeit np.multiply.outer(range(1,6),range(1,11))
100000 loops, best of 3: 14.2 us per loop
In [33]: %timeit np.array([[(i+1)*(j+1) for i in range(10)] for j in range(5)])
10000 loops, best of 3: 26.6 us per loop
</code></pre>