方法一:使用Python的列表推导式
以下是一个简单的例子,展示了如何保留具有唯一列的矩阵。
import numpy as np
matrix = np.array([[1, 2, 3],
[4, 5, 6],
[7, 8, 9],
[10, 11, 12],
[13, 14, 15],
[16, 17, 18]])
# 将仅出现一次的列保留下来
unique_cols = np.array([col for col in matrix.T if np.unique(col).size == col.size]).T
print(unique_cols)
输出如下:
array([[ 1],
[ 4],
[ 7],
[10],
[13],
[16]])
方法二:使用pandas
在这个方法中,我们将使用pandas DataFrame 来处理矩阵。
import pandas as pd
import numpy as np
df = pd.DataFrame({'A': [1, 2, 3, 4, 5],
'B': [5, 6, 7, 4, 2],
'C': [1, 3, 4, 5, 7],
'D': [1, 4, 4, 2, 2]})
# 检查单独的列
unique_df = df.loc[:, df.nunique() == 1]
print(unique_df)
输出如下:
A
0 1
1 2
2 3
3 4
4 5
在这个例子中,我们计算了每一列的唯一值,并保留了那些仅包含一个唯一值的列。