Python - 矩阵中的唯一值


Python 被世界各地不同的程序员用于不同的目的。Python 的不同应用领域包括 Web 开发、数据科学、机器学习,以及执行各种自动化流程。要继续处理各种矩阵,了解矩阵中存在的不同值非常重要。在 Python 中表达矩阵的传统方式是使用列表的列表,其中每个内部列表对应于矩阵的一行。矩阵的元素可以是任何数据类型,包括文本、浮点数,甚至整数。在本文中,我们将学习如何在矩阵中查找唯一值。

查找矩阵唯一值的不同方法

集合(Set)

这是一种查找矩阵唯一值非常简单的方法。我们可以简单地将数据集转换为集合,它会删除所有公共元素,然后我们可以非常轻松地找到唯一值。让我们举个例子来更好地理解它

示例

def unique_values_of_matrix(data): # The data is given as input to the function unique_values_of_matrix
    different_values = set() # An empty set is created
    for row in data:
        for element in row:  # We check each element in the input given and then all the unique elements are added to the new set created (different_values)
            different_values.add(element)
    return different_values

# Example usage
Names = [
    ['John', 'Sam', 'Daniel'],
    ['Jack', 'Matt', 'Alaric'],
    ['Stefen', 'Damon', 'Tyler']
]  # The input of the data is given

unique_values = unique_values_of_matrix(Names)  # The function unique_values_of_matrix is run
print(unique_values)  # The output will display all the unique values present in the matrix

输出

以上示例的输出如下所示

{'Stefen', 'Tyler', 'Matt', 'Alaric', 'Jack', 'Damon', 'John', 'Sam', 'Daniel'}} 

NumPy

这是一个在 Python 中非常常用的库,用于处理不同的数值。我们将使用 NumPy 库中的一个函数来查找矩阵的唯一值。该方法的示例如下所示

示例

import numpy as np  # Do not forget to import numpy or else error might occur

# Example 
Names = np.array([
    ['John', 'Sam', 'Daniel'],
    ['Jack', 'Matt', 'Alaric'],
    ['Stefen', 'Damon', 'Tyler']
]) # np.array defines the matrix data as array

different_values = np.unique(Names) # np.unique helps to find the unique values from the matrix
print(different_values)

输出

以上示例的输出如下所示

['Alaric' 'Damon' 'Daniel' 'Jack' 'John' 'Matt' 'Sam' 'Stefen' 'Tyler']

列表推导式

列表推导式用于有效地检查列表中的每个元素。在这种方法中,我们将矩阵转换为列表,然后找到其唯一值。让我们举个例子来更好地理解它

示例

# Example 
Names = [
    ['John', 'Sam', 'Daniel'],
    ['Jack', 'Matt', 'Alaric'],
    ['Stefen', 'Damon', 'Tyler']
]  # The input of the data is given

different_values = list({element for row in Names for element in row}) # With the help of list comprehension we check all the unique values in the matrix and then convert it back into a list
print(different_values) # The different unique values present in the list will be displayed

输出

以上示例的输出如下所示

['Alaric', 'Damon', 'Matt', 'John', 'Jack', 'Daniel', 'Stefen', 'Sam', 'Tyler']

Itertools

这是一个包含不同函数集的库,用于有效地检查列表中存在的不同元素。我们将使用 itertools 库的函数来查找矩阵中的唯一值。让我们举个例子来更好地理解它

示例

from itertools import chain  # Do not forget to import itertools or else error might occur

# Example 
Names = [
    ['John', 'Sam', 'Daniel'],
    ['Jack', 'Matt', 'Alaric'],
    ['Stefen', 'Damon', 'Tyler']
]  # The input of the data is given

different_values = set(chain(*Names)) # The chain function of the itertool library is used to merge all the data from the matrix and flatten it and the set function is used to find the unique values of the matrix
print(different_values)

输出

以上示例的输出如下所示

{'Tyler', 'Jack', 'Stefen', 'Alaric', 'Sam', 'Damon', 'Daniel', 'Matt', 'John'}

Pandas 库

当程序员必须处理矩阵中大量数据和许多不同矩阵时,很少使用这种方法。我们将使用 Pandas 库的函数来查找矩阵的唯一值。让我们举个例子来更好地理解它

示例

import pandas as pd  # Do not forget to import the pandas library or else error might occur

# Example matrix
Names = [
    ['John', 'Sam', 'Daniel'],
    ['Jack', 'Matt', 'Alaric'],
    ['Stefen', 'Damon', 'Tyler']
]  # The input of the data is given

new_dataframe = pd.DataFrame(Names)  # A new data frame is created from the input
different_values = new_dataframe.stack().unique() # Stack function will help to stack the data into one place and unique() function will find the unique values
print(different_values) # The different unique values present in the list will be displayed

输出

以上示例的输出如下所示

['John' 'Sam' 'Daniel' 'Jack' 'Matt' 'Alaric' 'Stefen' 'Damon' 'Tyler']

结论

了解可以用来查找矩阵唯一值的不同方法非常重要。本文介绍了查找矩阵中存在的唯一值的不同方法。

更新于: 2023年8月1日

207 次浏览

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告