NumPy教程-numpy.argsort()在Python中的使用
语法:
numpy.argsort(a, axis=-1, kind=None, order=None)
参数:
👉点击领取:最全Python资料合集
返回值: index_array: ndarray, int
示例 1: np.argsort()
import numpy as npa=np.array([456,11,63])ab=np.argsort(a)b
在上面的代码中
我们导入了别名为 np 的 numpy 库。
我们使用 np.array() 函数创建了一个名为 'a' 的数组。
我们声明了变量 'b',并将 np.argsort() 函数的返回值赋给它。
我们在函数中传递了数组 'a'。
最后,我们尝试打印 'b' 的值。
输出:
array([456, 11, 63])array([1, 2, 0], dtype=int64)
示例 2: 对于 2-D 数组(沿第一个轴(向下)排序)
import numpy as npa = np.array([[0, 5], [3, 2]])indices = np.argsort(a, axis=0)indices
输出:
array([[0, 1],[1, 0]], dtype=int64)
示例 3: 对于 2-D 数组(axis=0 的替代方法)
import numpy as npa = np.array([[0, 5], [3, 2]])indices = np.argsort(a, axis=0)indicesnp.take_along_axis(a, indices, axis=0)
在上面的代码中
我们导入了别名为 np 的 numpy 库。
我们使用 np.array() 函数创建了一个名为 'a' 的 2-D 数组。
我们声明了变量 'indices',并将 np.argsort() 函数的返回值赋给它。
我们在函数中传递了 2-D 数组 'a' 和轴为 0。
接下来,我们使用 take_along_axis() 函数,传递源数组、索引和轴。
这个函数返回了排序后的 2-D 数组。
输出:
array([[0, 2],[3, 5]])
示例 4: 对于 2-D 数组(沿最后一个轴(横向)排序)
import numpy as npa = np.array([[0, 5], [3, 2]])indices = np.argsort(a, axis=1)indices
输出:
array([[0, 1],[1, 0]], dtype=int64)
示例 5: 对于 2-D 数组(axis=1 的替代方法)
import numpy as npa = np.array([[0, 5], [3, 2]])indices = np.argsort(a, axis=1)indicesnp.take_along_axis(a, indices, axis=1)
输出:
array([[0, 2],[3, 5]])
示例 6: 对于 N-D 数组
import numpy as npa = np.array([[0, 5], [3, 2]])indices = np.unravel_index(np.argsort(a, axis=None), a.shape)indicesa[indices] # same as np.sort(a, axis=None)
输出:
(array([0, 1, 1, 0], dtype=int64), array([0, 1, 0, 1], dtype=int64))array([0, 2, 3, 5])
在上面的代码中
我们导入了别名为 np 的 numpy 库。
我们使用 np.array() 函数创建了一个名为 'a' 的 N-D 数组。
我们声明了一个变量 'indices',并将 np.unravel_index() 函数的返回值赋给它。
我们在函数中传递了 np.argsort() 函数和数组 'a' 的形状。
我们传递了 2-D 数组 'a' 和 axis=None 给 argsort() 函数。
接下来,我们尝试打印 'indices' 和 a[indices]。
示例 7: 带有键的排序
import numpy as npa= np.array([(0, 5), (3, 2)], dtype=[('x', '<i4'), ('y', '<i4')])ab=np.argsort(a, order=('x','y'))bc=np.argsort(a, order=('y','x'))c
输出:
array([(0, 5), (3, 2)], dtype=[('x', '<i4'), ('y', '<i4')])array([0, 1], dtype=int64)array([1, 0], dtype=int64)
在上面的代码中
我们导入了别名为 np 的 numpy 库。
我们使用 np.array() 函数创建了一个名为 'a' 的数组,并设置了 dtype=[('x', '<i4'), ('y', '<i4')]。
我们声明了变量 'b' 和 'c',并将 np.argsort() 函数的返回值赋给它们。
我们在函数中传递了数组 'a' 和 order 参数。
最后,我们尝试打印 'b' 和 'c' 的值。
热门推荐