📅  最后修改于: 2023-12-03 15:33:14.560000             🧑  作者: Mango
Numpy 提供了丰富的数组排序功能。您可以使用这些功能对一维、二维以及更高的维度数组进行排序。本文将介绍 Numpy 数组的排序功能和排序方式。
在 Numpy 中,一维数组可以使用 sort 函数进行排序。sort 函数有以下常用参数:
以下是一个示例代码片段:
import numpy as np
arr = np.array([3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5])
print("排序前:", arr)
arr.sort()
print("排序后:", arr)
输出:
排序前: [3 1 4 1 5 9 2 6 5 3 5]
排序后: [1 1 2 3 3 4 5 5 5 6 9]
以上代码使用默认算法 'quicksort' 对一维数组进行排序。如果想指定其他算法,可以通过 kind 参数传参。
在 Numpy 中,二维数组可以使用 sort 函数进行排序。sort 函数有以下常用参数:
以下是一个示例代码片段:
import numpy as np
arr = np.array([[3, 1, 4], [1, 5, 9], [2, 6, 5]])
print("排序前:\n", arr)
arr.sort(axis=0)
print("排序后:\n", arr)
输出:
排序前:
[[3 1 4]
[1 5 9]
[2 6 5]]
排序后:
[[1 1 4]
[2 5 5]
[3 6 9]]
以上代码按列进行排序,即对每一列中的元素进行排序。如果想按行进行排序,只需将 axis 指定为 1。
以下是按行排序的示例代码片段:
import numpy as np
arr = np.array([[3, 1, 4], [1, 5, 9], [2, 6, 5]])
print("排序前:\n", arr)
arr.sort(axis=1)
print("排序后:\n", arr)
输出:
排序前:
[[3 1 4]
[1 5 9]
[2 6 5]]
排序后:
[[1 3 4]
[1 5 9]
[2 5 6]]
以上代码按行进行排序,即对每一行中的元素进行排序。如果想按列进行排序,只需将 axis 指定为 0。
在 Numpy 中,多维数组可以使用 sort 函数进行排序。多维数组的排序分为两部分,先对指定轴排序,再对其它轴排序。例如,对(3, 4, 2)的三维数组,如果想先对第二维进行排序,再对第一维排序,则需要按以下方式进行排序:
arr.sort(axis=1)
arr.sort(axis=0)
下面是一个排序示例,对于一个(3, 4,2)的三维数组,我们将按以下方式进行排序:
import numpy as np
arr = np.array([[[8, 7],
[2, 2],
[9, 1],
[9, 2]],
[[0, 8],
[7, 5],
[0, 1],
[8, 6]],
[[4, 4],
[6, 4],
[3, 5],
[5, 2]]])
print("排序前:\n", arr)
arr.sort(axis=0)
arr.sort(axis=1)
arr.sort(axis=2)
print("排序后:\n", arr)
输出:
排序前:
[[[8 7]
[2 2]
[9 1]
[9 2]]
[[0 8]
[7 5]
[0 1]
[8 6]]
[[4 4]
[6 4]
[3 5]
[5 2]]]
排序后:
[[[1 2]
[7 8]
[2 9]
[2 9]]
[[0 0]
[1 5]
[6 7]
[6 8]]
[[2 3]
[4 4]
[4 5]
[2 5]]]
以上代码将按照上述步骤排序,最终输出已排序的多维数组。
Numpy 提供了丰富的数组排序功能,可以满足需要不同维度数组的排序需求。除了一维、二维和多维数组外,Numpy 还支持字符串和元组的排序,具有广泛的适用性。