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

Python Numpy多维数组格式化:获取迭代的末位值、最大值与最小值

问题原因

现有代码中result为不规则嵌套的object类型NumPy数组,直接通过result[-1]取值只会拿到最后一个输入数组的计算结果,直接调用np.max/np.min也无法对嵌套结构做逐序列的极值计算,因此不符合取值要求。

修正后代码

import numpy as np 

def run(*args):
    # 原有百分比计算逻辑保留,调整为原生嵌套列表避免NumPy object数组兼容问题
    result = [
        [((arr[i:] > 0).cumsum() / np.arange(1, len(arr[i:])+1) * 100) for i in range(len(arr))]
        for arr in args
    ]
    last_indexes = []
    maxs = []
    mins = []
    
    for arr_calc_res in result:
        cur_last = []
        cur_max = []
        cur_min = []
        for percent_seq in arr_calc_res:
            cur_last.append(percent_seq[-1])
            cur_max.append(percent_seq.max())
            cur_min.append(percent_seq.min())
        last_indexes.append(cur_last)
        maxs.append(cur_max)
        mins.append(cur_min)
    
    # 输出结果
    print("last_indexes", last_indexes)
    print("max", maxs)
    print("min", mins)
            
run(np.array([12,12,-3,-1,2,1]), np.array([-3,-1,-2,1]), np.array([12,-12]))

调整说明

  • 将result改为原生嵌套列表结构,避免不规则嵌套数组在NumPy中取值异常的问题
  • last_indexes逐一遍历每个百分比序列,取每个序列的末位值,按输入数组分组汇总
  • 最大值、最小值改为针对每个百分比序列单独计算,再按输入数组分组汇总

运行上述代码输出结果与预期完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 07:27:03