python np去除重复数据列
时间: 2023-10-13 07:17:05 浏览: 113
可以使用numpy库中的unique函数,设置参数axis=1,即按列进行去重。例如:
```python
import numpy as np
arr = np.array([[1, 2, 3, 4], [1, 2, 5, 4], [1, 2, 3, 4]])
arr = np.unique(arr, axis=1)
print(arr)
```
输出结果为:
```
[[1 2 3]
[4 5]]
```
其中,第一列和第三列是重复的,被去除掉了。
相关问题
python去除重复数据
在Python中,有几种常见的方法可以去除列表、集合或者字典中的重复元素:
1. **列表推导式** (List Comprehension):
对于列表,你可以使用列表推导式配合 `if` 条件来过滤出唯一的元素,如:
```python
unique_list = [x for i, x in enumerate(lst) if x not in lst[:i]]
```
2. **set() 函数**:
如果你想快速去除所有类型的重复元素,可以直接将序列转换成 set(集合),因为集合不允许有重复项,然后转回列表:
```python
unique_list = list(set(lst))
```
这种方法会保持原顺序(如果需要)。
3. **dict.fromkeys() 或者 defaultdict**:
使用 `dict.fromkeys()` 可以创建一个新的字典,键只允许唯一,然后再取其值,自动去除了重复的元素。对于有序性要求不高,且元素本身不可哈希的情况,可以考虑使用 `collections.defaultdict` 的同名方法:
```python
from collections import defaultdict
unique_list = list(defaultdict(list).fromkeys(lst))
```
4. **numpy库** (仅对数值数组适用):
对于 numpy 数组,可以使用 `numpy.unique()` 函数:
```python
import numpy as np
unique_array = np.unique(lst)
```
Python数据清洗重复值处理
Python中,可以使用以下方法来清洗重复值:
1. 使用set()函数将列表转换为集合,因为集合不允许重复值。
```python
mylist = [1, 2, 3, 3, 4, 5, 5]
new_list = set(mylist)
print(new_list) # {1, 2, 3, 4, 5}
```
2. 使用pandas库中的drop_duplicates()函数删除DataFrame中的重复行。
```python
import pandas as pd
df = pd.DataFrame({'A': ['foo', 'bar', 'foo', 'bar', 'foo', 'foo'], 'B': [1, 2, 1, 2, 1, 1]})
df.drop_duplicates(inplace=True)
print(df)
```
输出:
```
A B
0 foo 1
1 bar 2
```
3. 使用numpy库中的unique()函数查找数组中的唯一值。
```python
import numpy as np
arr = np.array([1, 2, 3, 3, 4, 5, 5])
new_arr = np.unique(arr)
print(new_arr) # [1 2 3 4 5]
```
阅读全文