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

如何高效将两个numpy数组调整大小至二者长度的较小值

最优实现方案

优先用切片操作实现,性能远高于resize,而且默认不修改原始数组,更安全:

import numpy as np

array1 = np.array([-1,-2,-3,-4], np.single)
array2 = np.array([1,2,3,4,5,6,7,8], np.single)
min_len = min(len(array1), len(array2))
# 切片返回的是数组视图,不会产生额外的数据拷贝,大数组下效率提升非常明显
array1_trim, array2_trim = array1[:min_len], array2[:min_len]

print(array1_trim)
print(array2_trim)

输出和你原代码完全一致:

[-1. -2. -3. -4.]
[1. 2. 3. 4.]

方案说明

  • 如果你确实需要原地修改原始数组,原有的resize写法也可以用,但要注意:数组实例的resize方法在数组有其他引用时会抛出警告,更推荐用切片得到新数组的方式,避免意外修改原始数据。
  • 如果要批量裁剪多个数组,还可以简化为列表推导的写法:
arrs = [array1, array2]
min_len = min(len(arr) for arr in arrs)
trimmed_arrs = [arr[:min_len] for arr in arrs]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 11:45:00