擅长:python、mysql、java
<p>您可以按原样多维使用<a href="https://docs.scipy.org/doc/numpy/reference/generated/numpy.ufunc.at.html" rel="nofollow noreferrer">^{<cd1>}</a>。<code>indices</code>参数在说明中包含以下内容:</p>
<blockquote>
<p>... If first operand has multiple dimensions, indices can be a tuple of array like index objects or slice </p>
</blockquote>
<p>所以:</p>
<pre><code>augend = np.zeros((10, 10))
indices_for_dim0 = np.array([1, 5, 2])
indices_for_dim1 = np.array([5, 3, 1])
addend = np.array([1, 2, 3])
np.add.at(augend, (indices_for_dim0, indices_for_dim1), addend)
</code></pre>
<p>更简单地说:</p>
^{pr2}$
<p>如果您真的很担心多维方面,并且augend是一个普通的连续C顺序数组,那么可以使用<a href="https://docs.scipy.org/doc/numpy/reference/generated/numpy.ravel.html" rel="nofollow noreferrer">^{<cd3>}</a>和{a3}在1D视图上执行操作:</p>
<pre><code>indices = np.ravel_multi_index((indices_for_dim0, indices_for_dim1), augend.shape)
raveled = augend.ravel()
np.add.at(raveled, indices, addend)
</code></pre>