擅长:python、mysql、java
<p><code>defaultdict</code>可以帮助您:</p>
<pre><code>>>> import numpy as np
>>> arr1 = np.array([1.4, 3.0, 4.0, 4.0, 7.0, 9.0, 9.0, 9.0])
>>> arr2 = np.array([2.3, 5.0, 2.3, 2.3, 4.0, 6.0, 5.0, 6.0])
>>> data = np.array([5.4, 7.1, 9.5, 1.9, 8.7, 1.8, 6.1, 7.4])
>>> from collections import defaultdict
>>> dd = defaultdict(list)
>>> for x1, x2, d in zip(arr1, arr2, data):
... dd[x1, x2].append(d)
...
>>> arr1unique = np.array([x[0] for x in dd.iterkeys()])
>>> arr2unique = np.array([x[1] for x in dd.iterkeys()])
>>> dataunique = np.array([np.mean(x) for x in dd.itervalues()])
>>> print arr1unique
[ 1.4 7. 4. 9. 9. 3. ]
>>> print arr2unique
[ 2.3 4. 2.3 5. 6. 5. ]
>>> print dataunique
[ 5.4 8.7 5.7 6.1 4.6 7.1]
</code></pre>
<p>这个方法给出了答案,但破坏了顺序。如果排序很重要,则可以使用<code>collections.OrderedDict</code>执行基本相同的操作</p>