NumPy 数组中的排名值 |
您所在的位置:网站首页 › 二维数组每列排序相同 › NumPy 数组中的排名值 |
使用 numpy.argsort() 方法的 NumPy 排名
Python 中带有 scipy.stats.rankdata() 函数的 NumPy 排名
本教程将介绍对 Python NumPy 数组中的数据进行排序的方法。 使用 numpy.argsort() 方法的 NumPy 排名numpy.argsort() 方法 用于获取可用于对 NumPy 数组进行排序的索引。这些索引也可以用作数组中每个元素的排名。numpy.argsort() 方法由数组调用,并以另一个数组的形式返回数组中每个元素的排名。 import numpy as np array = np.array([1, 8, 5, 7, 9]) temp = array.argsort() ranks = np.empty_like(temp) ranks[temp] = np.arange(len(array)) print(array) print(ranks)输出: [1 8 5 7 9] [0 3 1 2 4]我们在上面的代码中使用 numpy.argsort() 函数对 NumPy 数组 array 中的元素进行排序。我们首先使用 np.array() 函数创建了我们的数组。然后我们使用 array.argsort() 函数并将值存储在 temp 数组中。之后,我们创建了另一个数组 ranks,其中包含 array 中每个元素的排名。然后,我们使用 ranks[temp] = np.arange(len(array)) 将 array 中每个元素的排名分配给 ranks 的每个元素。 上述编码示例中讨论的方法工作正常,但我们可以使用 numpy.argsort() 函数两次进一步简化我们的代码。下面的编码示例演示了这种现象。 import numpy as np array = np.array([1, 8, 5, 7, 9]) temp = array.argsort() ranks = temp.argsort() print(array) print(ranks)输出: [1 8 5 7 9] [0 3 1 2 4]我们创建了另一个数组 ranks,并使用 ranks = temp.argsort() 将 array 中每个元素的排名分配给 ranks 的每个元素。 Python 中带有 scipy.stats.rankdata() 函数的 NumPy 排名我们还可以使用 scipy.stats 库中的 rankdata() 函数 来获取 NumPy 数组中每个元素的排名。rankdata() 函数将数组作为输入参数,对数组内的每个元素进行排序,并以另一个相同长度的数组的形式返回结果。 from scipy.stats import rankdata import numpy as np array = np.array([1, 8, 5, 7, 9]) ranks = rankdata(array) print(array) print(ranks)输出: [1 8 5 7 9] [1. 4. 2. 3. 5.]我们首先使用 np.array() 函数创建了我们的数组。然后我们使用 rankdata(array) 函数并将值存储在 ranks 数组中。 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |