> 学习的时候遇到了 记一下。
<div class="blog-content-box">
<div class="article-header-box">
<div class="article-header">
<div class="article-title-box">
<h1 class="title-article">unique()函数详解</h1>
</div>
</div>
<div class="htmledit_views" id="content_views">
<p>unique():返回参数数组中所有不同的值,并按照从小到大排序</p>
<p>可选参数:</p>
<p>return_index=True: 返回<span style="color:#f33b45;"><strong>新列表</strong></span>中的每个元素在<span style="color:#f33b45;"><strong>原列表</strong></span>中<strong><span style="color:#3399ea;">第一次</span></strong>出现的索引值,因此元素个数与新列表中元素个数一样</p>
<p>return_inverse=True:返回<strong><span style="color:#f33b45;">原列表</span></strong>中的每个元素在<strong><span style="color:#f33b45;">新列表</span></strong>中出现的索引值,因此元素个数与原列表中元素个数一样</p>
<p> </p>
<h1><a name="t0"></a><a name="t0"></a>一、元素为数值型数据</h1>
```python
import numpy as np
A = [1, 2, 5, 3, 4, 3]
print ("原列表:", A)
print ("--------------------------")
#返回任意的一个参数值
a = np.unique(A)
print ("新列表:", a)
print ("--------------------------")
#返回任意的两个参数值
a, s = np.unique(A, return_index=True)
print ("新列表:",a)
print ("return_index:",s)
print ("--------------------------")
#返回全部三个参数值
a, s, p = np.unique(A, return_index=True, return_inverse=True)
print ("新列表:",a)
print ("return_index", s)
print ("return_inverse", p)
```
<p>运行结果:</p>
![image.png](https://i.loli.net/2021/03/23/LrCo8qYGT6i2nAg.png)
<p>说明:原列表A = [1, 2, 5, 3, 4, 3],各元素对应的索引值为:0,1,2,3 ,4,5</p>
<p> </p>
<p>return_index=True:返回新列表a=[<span style="color:#f33b45;">1</span> <span style="color:#ffbb66;">2</span> <span style="color:#86ca5e;">3</span> <span style="color:#e579b6;">4</span> <span style="color:#3399ea;">5</span>]中每个元素在原列表A = [1 2 5 3 4 3]中第一次出现的索引值</p>
<p><span style="color:#f33b45;">1</span>的索引为0,<span style="color:#ffbb66;">2</span>的索引为1,<span style="color:#86ca5e;">3</span>的索引为3,<span style="color:#e579b6;">4</span>对应的索引为4,<span style="color:#3399ea;">5</span>对应的索引为2,所以最后返回的结果为[0 1 3 4 2],</p>
<p>新列表5个元素,结果也是5个元素</p>
<p> </p>
<p>return_inverse=True:返回原列表A = [<span style="color:#f33b45;">1 </span><span style="color:#ffbb66;"> 2 </span> <span style="color:#86ca5e;">5</span> <span style="color:#e579b6;">3</span> <span style="color:#3399ea;"> 4</span> <span style="color:#7c79e5;">3</span>]中每个元素在新列表a=[1 2 3 4 5]中的索引值</p>
<p><span style="color:#f33b45;">1</span>对应的索引为0,<span style="color:#ffbb66;">2</span>对应的索引为1,<span style="color:#86ca5e;">5</span>对应的索引为4,<span style="color:#e579b6;">3</span>对应的索引为2,<span style="color:#3399ea;">4</span>对应的索引为3,<span style="color:#7c79e5;">3</span>对应的索引为2,所以最后的结果为[0 1 4 2 3 2]</p>
<p>原列表6个元素,结果也是6个元素</p>
<p> </p>
<h1><a name="t1"></a><a name="t1"></a>二、元素为字符型数据</h1>
<p> </p>
```python
#二、元素为字符型数据
A = ['fgfh','asd','fgfh','asdfds','wrh']
print ("原列表:", A)
print ("-------------------------------------------------")
a, s, p = np.unique(A, return_index=True, return_inverse=True)
print ("新列表:",a)
print ("return_index", s)
print ("return_inverse", p)
```
<p>运行结果:</p>
![image.png](https://i.loli.net/2021/03/23/vAuB1OVLT7ZGrDl.png)
np.unique()函数详解