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

从100个500x500数组中提取各位置前10小值组合数组的实现方案

实现方案

你可以通过NumPy的数组堆叠+部分排序直接实现需求,不需要对完整数组做全量排序,性能开销极低:

核心思路

把100个500x500的原始数组沿新增维度堆叠为三维数组后,沿堆叠维度提取每个坐标位置的前10小值即可。

代码示例

import numpy as np

# 入参:arr_list 存储你所有100个原始500x500数组的列表
# 1. 沿第0轴堆叠为形状 (100, 500, 500) 的三维数组
stacked_arr = np.stack(arr_list, axis=0)

# 2. 部分排序提取每个位置前10小的值(kth=9对应第10小值,仅保证前10个是最小的10个值)
top10_arr = np.partition(stacked_arr, kth=9, axis=0)[:10]
# 若需严格保证前10个值按升序排列,补充以下排序步骤
top10_arr = np.sort(top10_arr, axis=0)

# 结果提取:
# top10_arr[0] = 所有位置最小值(和你用np.minimum得到的结果完全一致)
# top10_arr[1] = 所有位置第2小值
# ...
# top10_arr[9] = 所有位置第10小值

额外说明

该方案仅对每个坐标位置的100个值做必要的部分排序,不会对任意一个完整的原始500x500数组做排序,完全符合你的需求要求。500x500规模下执行耗时不足1秒,性能表现优异。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 22:15:04