You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何依据行的范数对numpy矩阵的行进行排序?

如何按行的范数对NumPy数组的行进行排序?

你可以通过三步实现按行的欧几里得范数对NumPy数组行进行降序排序:

  1. 计算每行的范数:用np.linalg.norm并指定axis=1,得到每行的L2范数数组。
  2. 获取排序索引:通过np.argsort获取范数降序对应的行索引(默认升序,取负或反转索引实现降序)。
  3. 重新排列数组:用得到的索引对原数组的行重新排序。

完整代码示例

import numpy as np

# 原始数组
arr = np.array([[ 4.14022471,  3.96360618],  
                [ 0.37601032,  1.25528411],  
                [ 3.49313049,  0.94909878]])

# 计算每行的L2范数
row_norms = np.linalg.norm(arr, axis=1)

# 获取范数降序对应的行索引
sorted_indices = np.argsort(-row_norms)

# 按索引重新排列数组
sorted_arr = arr[sorted_indices]

print(sorted_arr)

输出结果

array([[4.14022471, 3.96360618],
       [3.49313049, 0.94909878],
       [0.37601032, 1.25528411]])

如果需要升序排序,直接使用np.argsort(row_norms)即可,无需取负。

内容的提问来源于stack exchange,提问作者Formal_this

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 10:45:33