基本问题是:在做什么时会发生什么a[i] += b?
鉴于以下内容:
import numpy as np
a = np.arange(4)
i = a > 0
i
= array([False, True, True, True], dtype=bool)
Run Code Online (Sandbox Code Playgroud)
我明白那个:
a[i] = x是相同的a.__setitem__(i, x),它直接分配给指示的项目ia += x是一样的a.__iadd__(x),它不到位此外但是当我这样做时会发生什么:
a[i] += x
Run Code Online (Sandbox Code Playgroud)
特别:
a[i] = a[i] + x吗?(这不是就地操作)i是:
int指数,或ndarray,或slice对象背景
我开始深入研究这个问题的原因是我在处理重复索引时遇到了非直观的行为:
a = np.zeros(4)
x = np.arange(4)
indices = np.zeros(4,dtype=np.int) # duplicate indices
a[indices] …Run Code Online (Sandbox Code Playgroud)