Skip to main content
 首页 » 编程设计

python之如何删除numpy中具有相同值的列

2025年05月04日20softidea

如何删除 NumPy 数组中所有具有相同值的列?

例如,如果我有这个矩阵:

[0 1 2 3 1]   
[0 2 2 1 0]   
[0 4 2 3 4]   
[0 1 2 3 4]   
[0 1 2 4 5] 

我想得到一个如下所示的新矩阵:

[1 3 1]   
[2 1 0]   
[4 3 4]   
[1 3 4]   
[1 4 5] 

请您参考如下方法:

您可以将数组与其自身的移位版本进行比较,如果某一列的所有对都相等,则该列仅包含一个唯一值,可以使用 bool 索引将其删除:

a[:, ~np.all(a[1:] == a[:-1], axis=0)] 
 
#array([[1, 3, 1], 
#       [2, 1, 0], 
#       [4, 3, 4], 
#       [1, 3, 4], 
#       [1, 4, 5]])