在NumPy中,逆序获取多维数组的索引可以通过多种方式实现。以下是一些常见的方法:
numpy.argsort
和负索引import numpy as np
# 创建一个示例数组
arr = np.array([[5, 3, 8],
[9, 1, 4]])
# 获取沿第一个轴(行)的逆序索引
row_indices = np.argsort(arr, axis=1)[:, ::-1]
# 获取沿第二个轴(列)的逆序索引
col_indices = np.argsort(arr, axis=0)[::-1, :]
print("Row indices in descending order:\n", row_indices)
print("Column indices in descending order:\n", col_indices)
numpy.flip
和numpy.argpartition
import numpy as np
# 创建一个示例数组
arr = np.array([[5, 3, 8],
[9, 1, 4]])
# 沿第一个轴(行)逆序
row_reversed = np.flip(arr, axis=1)
row_indices = np.argpartition(row_reversed, -1, axis=1)[:, -1:][..., ::-1]
# 沿第二个轴(列)逆序
col_reversed = np.flip(arr, axis=0)
col_indices = np.argpartition(col_reversed, -1, axis=0)[-1:, :][..., ::-1]
print("Row indices in descending order:\n", row_indices)
print("Column indices in descending order:\n", col_indices)
逆序获取多维数组的索引在多种场景中非常有用,例如:
通过以上方法和示例代码,你可以轻松地逆序获取NumPy多维数组的索引,并应用于各种实际场景中。
领取专属 10元无门槛券
手把手带您无忧上云