擅长:python、mysql、java
<p>一种方法是使用<code>numpy.unique</code>来提取值计数。在</p>
<p>然后转换为字典并使用<code>numpy.vectorize</code>来使用这个字典映射。在</p>
<pre><code>import numpy as np
A = np.array([[2,2,3,3],
[2,3,3,3],
[3,3,4,4]])
d = dict(zip(*np.unique(A.ravel(), return_counts=True)))
res = np.vectorize(d.get)(A)
array([[3, 3, 7, 7],
[3, 7, 7, 7],
[7, 7, 2, 2]], dtype=int64)
</code></pre>
<p><strong>性能</strong></p>
<p>我看到上面的方法对于2000x2000数组需要~2s,而通过基于字典的方法是3s。但是<a href="https://stackoverflow.com/a/49961492/9209546">PaulPanzer</a>和{a2}的纯<code>numpy</code>溶液仍然更快。在</p>
^{pr2}$