擅长:python、mysql、java
<p>IIUC,你可以这样做:</p>
<pre><code>>>> arr = np.array([[1,2+3j,4+5j],[6+7j,8,9],[10+11j,12,13+14j]])
>>> arr
array([[ 1. +0.j, 2. +3.j, 4. +5.j],
[ 6. +7.j, 8. +0.j, 9. +0.j],
[ 10.+11.j, 12. +0.j, 13.+14.j]])
>>> arr[abs(arr.imag) > 0] = -1
>>> arr
array([[ 1.+0.j, -1.+0.j, -1.+0.j],
[ -1.+0.j, 8.+0.j, 9.+0.j],
[ -1.+0.j, 12.+0.j, -1.+0.j]])
</code></pre>
<p>然后(因为通过构造,我们所有的虚部都为零),如果我们想要,我们可以只使用实部:</p>
^{pr2}$
<p>(更新:正如Floris所说,<code>arr.imag != 0</code>甚至比<code>abs(arr.imag) > 0</code>更好。这样既简单又快捷,但两者都能起作用。)</p>