首页 > 解决方案 > 用每个值的顺序替换 numpy 数组

问题描述

您好,我正在尝试执行以下操作。

我有一个矩阵

a = np.array([[1,4,3], [0,3,7]])

我想转换矩阵,以便每个单元格 new_a[i,j] 包含 a[i,j] 沿轴 = 1 的顺序(降序)所以结果将是

a_new = np.array([[2,0,1], [2,1,0]])

我试过这个(它有效)

argsorts = np.argsort(a, axis=1) 

for i in a.shape[0]:
    a[i, argsorts[i]] = range(a.shape[1])[::-1]

我想用别的东西改变for循环谢谢

标签: pythonarraysnumpy

解决方案


尝试

>>> 2-a.argsort()
[[2 0 1]
 [2 1 0]]

推荐阅读