当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python numpy.unique()用法及代码示例


Python 的 numpy 模块提供了在 numpy 数组中查找唯一元素的函数。 numpy.unique() 函数查找数组的唯一元素并将这些唯一元素作为排序数组返回。除了独特的元素外,还有一些可选的输出,如下所示:

  • 输出可以是给出唯一值的输入数组的索引
  • 输出可以是重构输入数组的唯一数组的索引
  • 输出可以是每个唯一值在输入数组中出现的次数的数组。

用法

numpy.unique(a, return_index=False, return_inverse=False, return_counts=False, axis=None)

参数

这些是 numpy.mean() 函数中的以下参数:

a:数组

此参数定义包含需要其唯一值的元素的源数组。如果不是一维数组,数组将被展平。

Return_index:bool(可选)

如果此参数设置为 True,该函数将返回输入数组的索引(沿着指定的轴,如果提供或在扁平数组中),这将导致唯一数组。

return_inverse:bool(可选)

如果此参数设置为 True,该函数还将返回输入数组的索引(沿着指定的轴,如果提供或在扁平数组中),可用于重建输入数组。

Return_counts:bool(可选)

如果此参数设置为 True,该函数将返回输入数组 'a' 中每个唯一项出现的次数。

轴:整数或无(可选)

此参数定义要操作的轴。如果未设置此参数,则数组 'a' 将被展平。如果此参数是整数,则由给定轴索引的子数组将被展平并被视为具有给定轴维度的一维数组的元素。如果使用轴 'kwarg',则不支持结构化数组或包含对象的对象数组。

返回

此函数返回四种类型的输出,如下所示:

唯一的:ndarray

在此输出中,将显示包含排序的唯一值的 ndarray。

unique_indices:ndarray(可选)

在此输出中,将显示一个 ndarray,其中包含原始数组中第一次出现的唯一值的索引。仅当 return_index 为 True 时才提供此输出。

unique_inverse:ndarray(可选)

在此输出中,将显示一个 ndarray,其中包含用于从唯一数组重建原始数组的索引。仅当 return_inverse 为 True 时才提供此输出。

unique_counts:ndarray(可选)

在此输出中,将显示一个 ndarray,其中包含每个唯一值在原始数组中出现的次数。仅当 return_counts 为 True 时才提供此输出。

范例1:

import numpy as np
a=np.unique([1,2,3,4,3,6,2,4])
a

输出:

array([1, 2, 3, 4, 6]) 

在上面的代码中

  • 我们已经导入了别名为 np.
  • 我们已经声明了变量 'a' 并分配了 np.unique() 函数的返回值。
  • 我们已经在函数中传递了元素的数量。
  • 最后,我们尝试打印 'a' 的值。

在输出中,显示了一个 ndarray,其中包含唯一元素。

范例2:

a=np.array([[1,2,2,3,9],[1,4,3,5,8]])
a
b=np.unique(a)
b

输出:

array([[1, 2, 2, 3, 9],
       	[1, 4, 3, 5, 8]])
array([1, 2, 3, 4, 5, 8, 9])

范例3:

import numpy as np
a = np.array([[1, 1, 0], [1, 1, 0], [2, 3, 4],[5, 9, 8],[2, 3, 4]])
a
b=np.unique(a, axis=0)
b

输出:

array([[1, 1, 0],
       	[1, 1, 0],
       	[2, 3, 4],
       	[5, 9, 8],
       	[2, 3, 4]])
array([[1, 1, 0],
       	[2, 3, 4],
       	[5, 9, 8]])

在上面的代码中

  • 我们已经导入了别名为 np.
  • 我们创建了一个多维数组 'a'。
  • 我们已经声明了变量 'b' 并分配了 np.unique() 函数的返回值。
  • 我们在函数中传递了多维数组 'a' 和轴为 0。
  • 最后,我们尝试打印 'b' 的值。

在输出中,显示了一个 ndarray,其中包含源数组 'a' 的唯一行。

范例4:

import numpy as np
a = np.array([[1, 1, 0], [1, 1, 0], [2, 2, 4],[5, 5, 8],[2, 2, 4]])
a
b=np.unique(a, axis=1)
b

输出:

array([[1, 1, 0],
       	[1, 1, 0],
       	[2, 2, 4],
       	[5, 5, 8],
       	[2, 2, 4]])
array([[0, 1],
       	[0, 1],
       	[4, 2],
       	[8, 5],
       	[4, 2]])

注意:当我们将轴设置为 1 时,此函数将返回源数组中的唯一列。

示例 5:使用 return_index

import numpy as np
a = np.array(['d', 'b', 'b', 'z', 'a'])
result, indices=np.unique(a,return_index=True)
result
indices
a[indices]

输出:

array(['a', 'b', 'd', 'z'], dtype='|S1')
array([4, 1, 0, 3], dtype=int64)
array(['a', 'b', 'd', 'z'], dtype='|S1')

在上面的代码中

  • 我们已经导入了别名为 np.
  • 我们创建了一个数组 'a'。
  • 我们已经声明了变量 'result' 和 'indices' 并分配了 np.unique() 函数的返回值。
  • 我们已经传递了数组 'a' 并在函数中将 return_index 设置为 True。
  • 最后,我们尝试打印 'result'、'indices' 和表示索引 ('a [indices]') 的数组元素的值。

在输出中,显示了一个 ndarray,其中包含给出唯一值的原始数组的索引。

示例 6:使用 return_inverse

我们可以通过以下方式从唯一值重建输入数组:

import numpy as np
a = np.array([1, 2, 6, 4, 5, 3, 2])
result, indices=np.unique(a,return_inverse=True)
result
indices
a[indices]

输出:

array([1, 2, 3, 4, 5, 6])
array([0, 1, 5, 3, 4, 2, 1], dtype=int64)
array([1, 2, 3, 4, 5, 6, 2])




相关用法


注:本文由纯净天空筛选整理自 numpy.unique() in Python。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。