如何遍历numpy数组列表并两两分组作为自定义函数的输入参数
实现方案
你可以直接用以下两种方法实现批量分组调用,不需要手动写每个索引,哪怕y内有数百个数组也能自动适配:
方法1:步长遍历法(可读性最高)
直接控制循环步长为2,每次取当前索引和下一个索引的元素传入func:
# 步长设为2,遍历所有偶数位起始索引 for i in range(0, len(y), 2): res = func(y[i], y[i+1]) result_func.append(res)
逻辑直观易懂,只要保证y的总长度为偶数即可正常运行。
方法2:zip切片法(写法最简洁)
用切片分别取y的偶数位、奇数位元素,再用zip自动配对,直接遍历配对结果即可:
for arr1, arr2 in zip(y[::2], y[1::2]): result_func.append(func(arr1, arr2))
不需要手动处理索引,代码更精简,适合快速实现。
可选边界兼容处理
如果不能保证y的长度一定是偶数,怕最后剩余的单个元素导致索引报错,可以提前截断到偶数长度:
# 取最大的偶数长度,自动忽略最后落单的元素 valid_len = len(y) // 2 * 2 for i in range(0, valid_len, 2): res = func(y[i], y[i+1]) result_func.append(res)
内容的提问来源于stack exchange,提问作者Nyzky
相关产品推荐
相关产品推荐

