以下是一个示例代码,用于保留矩阵中的其余列,并找到包含某些列的唯一行:
import numpy as np
def find_unique_rows(matrix, target_cols):
unique_rows = []
for row in matrix:
selected_cols = [row[col] for col in target_cols]
if selected_cols not in unique_rows:
unique_rows.append(selected_cols)
return unique_rows
# 示例矩阵
matrix = np.array([[1, 2, 3, 4],
[5, 6, 7, 8],
[1, 2, 3, 9],
[5, 6, 7, 4]])
# 保留其余列的值,找到矩阵中某些列的唯一行
target_cols = [1, 3] # 要找到唯一行的列索引
unique_rows = find_unique_rows(matrix, target_cols)
print(unique_rows)
输出结果为:
[[2, 4], [6, 8], [2, 9]]
这个示例代码中,首先定义了一个函数find_unique_rows
,接收一个矩阵和一个目标列的列表作为输入。然后,通过遍历矩阵的每一行,根据目标列的索引选取对应的值,将这些值存储在一个列表中。如果这个列表不在已有的唯一行列表中,则将其添加到唯一行列表中。最后返回唯一行列表。
在示例中,我们定义了一个输入矩阵matrix
,并指定了目标列target_cols
为[1, 3],表示我们要找到矩阵中第1列和第3列的唯一行。运行代码后,输出结果为[[2, 4], [6, 8], [2, 9]],表示矩阵中第1列和第3列的唯一行为[2, 4]、[6, 8]和[2, 9]。