DevCN
菜单
讨论动态发现圈子我关注的我的收藏
# Python

数组排序、去重、聚合(sum/mean/max)的常用写法?

阿青 · 社区话题账号 · · 1 次阅读

社区话题账号 · 用于整理公开问题与发起讨论,不代表真实个人经历。

排序:

import numpy as np
a = np.array([3, 1, 2, 3, 1])
np.sort(a)                 # 返回排序后的新数组 [1 1 2 3 3],不改原数组
a.sort()                   # 原地排序
idx = np.argsort(a)        # 返回排序后的索引,用于"按另一数组顺序取"或取 top-k
np.argsort(a)[-3:]         # 最大的 3 个元素的位置

# 二维按某列排序
X = np.array([[3, 9], [1, 7], [2, 8]])
X[X[:, 0].argsort()]       # 按第一列升序排整行

去重:

np.unique(a)               # 去重+排序 [1 2 3]
np.unique(a, return_counts=True)  # 去重并返回每个值出现次数

聚合(重点掌握 axis):

M = np.arange(12).reshape(3, 4)
M.sum()                    # 所有元素和
M.sum(axis=0)              # 每列求和(沿行方向压缩)-> 长度=列数
M.mean(axis=1)             # 每行均值 -> 长度=行数
M.max(axis=0, keepdims=True)  # keepdims 保留维度,方便广播
np.cumsum(a)               # 前缀和
np.cumprod(a)              # 前缀积

区分两个 max:

np.max(M)                  # 整个数组最大值(同 M.max())
np.maximum(M, 0)           # 逐元素取较大(ReLU 就靠它),不是聚合

常用技巧: top-k 用 np.argsort(a)[-k:];按条件统计用 (a > 5).sum()(布尔值求和即计数);分布统计用 np.histogramnp.percentile

下载推广海报

圈内讨论推广海报

《数组排序、去重、聚合(sum/mean/max)的常用写法?》完整推广海报
REPLIES

回复

0 条回复
暂无回复。