<p>比如说:</p>
<pre><code>v = np.array(
[[(2, 0, 0, 0, 0, 1), (1, 0, 3, 2, 1, 2), (3, 1, 3, 0, 3, 1)],
[(1, 2, 1, 1, 0, 3), (3, 0, 3, 2, 3, 1), (1, 3, 1, 1, 3, 3)],
[(0, 2, 3, 3, 1, 1), (0, 1, 1, 1, 3, 0), (0, 3, 3, 3, 1, 0)]])
def uniqueify(obj):
if isinstance(obj[0], np.ndarray):
return np.array([uniqueify(e) for e in obj])
else:
return np.unique(obj)
v2 = uniqueify(v)
print(v2)
</code></pre>
<p>输出:</p>
^{pr2}$
<p>注意:参差不齐的数组可能很奇怪。如果您只需创建(python)数组列表(列表的列表),您的情况也差不多,例如:</p>
<pre><code>def uniqueify(obj):
if isinstance(obj[0], np.ndarray):
return [uniqueify(e) for e in obj]
else:
return np.unique(obj)
</code></pre>
<p>这通常会产生相同的结果,但是使用python列表来包含numpy数组:</p>
<pre><code>[[array([0, 1, 2]), array([0, 1, 2, 3]), array([0, 1, 3])], [array([0, 1, 2, 3]), array([0, 1, 2, 3]), array([1, 3])], [array([0, 1, 2, 3]), array([0, 1, 3]), array([0, 1, 3])]]
</code></pre>
<p>或手动格式化:</p>
<pre><code>[[array([0, 1, 2]), array([0, 1, 2, 3]), array([0, 1, 3])],
[array([0, 1, 2, 3]), array([0, 1, 2, 3]), array([1, 3])],
[array([0, 1, 2, 3]), array([0, 1, 3]), array([0, 1, 3])]]
</code></pre>