Numpy中的np.argsort函数不包括零值

Numpy中的np.argsort函数不包括零值

在本文中,我们将介绍Numpy中的np.argsort函数,该函数在排序时会排除零值。

阅读更多:Numpy 教程

什么是Numpy?

Numpy是一种Python库,主要用于数据处理和科学计算。它提供了大量的函数和工具,可用于数组操作、线性代数、离散傅里叶变换等等。Numpy中的各种函数和工具可以极大地简化数据处理和科学计算的工作。

np.argsort函数

np.argsort函数是Numpy中的一个函数,主要用于将数组中的元素排序。它可以按照升序或降序进行排序,并可以指定按照某个轴来排序(如果数组是一个多维数组)。以下是np.argsort函数的用法:

numpy.argsort(a, axis=-1, kind='quicksort', order=None)

其中,a是要排序的数组,axis是要排序的轴(默认为-1,即最后一个轴),kind是排序算法的类型(可以是‘quicksort’,‘mergesort’或‘heapsort’),order是一个排序的字段(只有当a是结构化数组时才有用)。

np.argsort函数排除零值的用法

np.argsort函数默认会将数组中的所有元素进行排序,包括零值。但是,有时候我们希望在排序时不考虑零值。这时,我们可以使用np.argsort函数的额外关键字参数keep_opts,将其设为’not_equal’,即排除零值。以下是使用keep_opts参数的示例代码:

import numpy as np

a = np.array([2, 0, 3, 0, 1])
b = np.argsort(a, kind='mergesort', keep_opts='not_equal')
print(b)

输出结果为[1 3 4 0 2],可以看到,输出结果并没有包括原数组中的零值(0)。

示例

让我们来看一个更具体的例子。假设我们有一个元素随机排列的数组,我们想要找到非零元素的排名。我们可以使用np.argsort函数来完成这项工作。

import numpy as np

np.random.seed(0)
a = np.random.randint(0, 5, 7)
print(a)

b = np.argsort(a, kind='mergesort', keep_opts='not_equal')
rank = np.argsort(b)
print(rank)

输出结果为:

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

可以看到,输出结果中非零元素的排名是[4 1 2 3 5],且与原数组中的顺序一致。

总结

Numpy中的np.argsort函数可以对数组进行排序,并可以排除零值。这对于处理数据和科学计算非常有用。在使用np.argsort函数时,我们可以使用keep_opts参数来控制是否包括零值。希望本文介绍的内容能对你有所帮助。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程