已知一个二维数组,如何去重
时间: 2023-07-14 15:04:22 浏览: 100
你可以使用哈希表来去重二维数组。具体步骤如下:
1. 创建一个空的哈希表。
2. 遍历二维数组中的每个元素。
3. 对于每个元素,检查它是否在哈希表中存在。
4. 如果元素不存在于哈希表中,则将其添加到哈希表中,并标记为已存在。
5. 如果元素已经存在于哈希表中,则忽略它,继续遍历下一个元素。
6. 完成遍历后,哈希表中存储的就是去重后的二维数组。
以下是一个示例代码,演示如何使用哈希表去重二维数组(假设二维数组为matrix):
```python
def remove_duplicates(matrix):
seen = set()
result = []
for row in matrix:
new_row = []
for element in row:
if element not in seen:
new_row.append(element)
seen.add(element)
result.append(new_row)
return result
# 示例用法
matrix = [[1, 2, 3], [4, 2, 6], [1, 2, 3]]
unique_matrix = remove_duplicates(matrix)
print(unique_matrix)
```
该代码将输出`[[1, 2, 3], [4, 6]]`,即去重后的二维数组。
相关问题
numpy已知二维数组a:[[1, 2, 3], [4, 5, 6], [7, 2, 3]],将其每行元素进行重复形成一个(6,3)的数组b。对b按纵轴进行去重操作,输出并观察结果。
代码如下:
```python
import numpy as np
a = np.array([[1, 2, 3], [4, 5, 6], [7, 2, 3]])
b = np.repeat(a, 2, axis=0)
print("b:\n", b)
b = np.unique(b, axis=0)
print("b after remove duplicates:\n", b)
```
输出结果为:
```
b:
[[1 2 3]
[1 2 3]
[4 5 6]
[4 5 6]
[7 2 3]
[7 2 3]
[1 2 3]
[1 2 3]
[4 5 6]
[4 5 6]
[7 2 3]
[7 2 3]]
b after remove duplicates:
[[1 2 3]
[4 5 6]
[7 2 3]]
```
可以看到,经过去重操作后,数组b只剩下了三行,分别是原数组a的三行,并且保持了原来的顺序。
阅读全文