以下是一个解决方法的代码示例:
import numpy as np
def unique_rows(arr):
# 将数组转换为虚拟结构数组
structured_arr = np.core.records.fromarrays(arr.T, names=','.join(['f{}'.format(i) for i in range(arr.shape[1])]))
# 查找独特的行
unique_arr = np.unique(structured_arr, return_index=True)[1]
# 返回独特的行
return arr[unique_arr]
# 示例输入
arr = np.array([[1, 2, 3],
[4, 5, 6],
[1, 2, 3],
[7, 8, 9],
[4, 5, 6]])
unique_rows_arr = unique_rows(arr)
print(unique_rows_arr)
输出:
[[1 2 3]
[4 5 6]
[7 8 9]]
这个解决方法使用了numpy的unique
函数来查找独特的行。首先,将输入数组转换为虚拟结构数组,其中每一列都有一个字段名。然后,使用unique
函数来找到独特的行的索引。最后,根据这些索引从原始数组中提取独特的行并返回。