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

如何快速获取含numpy数组的DataFrame列的全局最大值?

解决方法:提取numpy数组列的全局最大值

针对你的需求,这里提供几种简便且高效的实现方式:

方法1:利用numpy向量化拼接(推荐大数据量场景)

通过np.concatenate将new列的所有numpy数组合并成一个一维数组,再直接取最大值,这种方式依赖numpy的向量化操作,效率最高:

import numpy as np
import pandas as pd

# 初始化你的DataFrame
df = pd.DataFrame({'id': [1, 2, 33, 4],
                   'a': [1, 22, 23, 44],
                   'b': [1, 42, 23, 42]})
df['new'] = df.apply(lambda r: tuple(r), axis=1).apply(np.array)

# 计算全局最大值
global_max = np.concatenate(df['new']).max()
print(global_max)  # 输出: 44

方法2:嵌套列表推导式

通过两层列表推导式提取所有数组元素,再用Python内置的max函数求值,代码简洁直观:

global_max = max(num for arr in df['new'] for num in arr)
print(global_max)  # 输出: 44

方法3:分步求最大值

先对new列的每个numpy数组求最大值,再对这些局部最大值取全局最大值,逻辑清晰:

global_max = df['new'].apply(np.max).max()
print(global_max)  # 输出: 44

性能对比

  • 当数据量较大时,方法1的效率最优,因为numpy的底层实现是C级别的循环,远快于Python层面的遍历;
  • 方法2和方法3在小数据量场景下使用方便,但数据量上升后性能会明显下降。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 15:35:43