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

如何在numpy.apply_along_axis中向lambda传入沿轴拆分的多参数

报错原因

np.apply_along_axis 会将指定轴切分得到的一维数组作为单个参数传入回调函数,不会自动把数组内的元素拆分为多个独立参数,因此你最初传入需要3个位置参数的lambda会触发参数缺失报错。

方案1:符合你要求的传参写法

可以在回调函数内部做参数解包,不需要写索引即可直接用r/g/b语义化变量操作:

np.apply_along_axis(lambda x: (lambda r, g, b: r * 0.5 + g * 0.25 + b * 0.25)(*x), axis=-1, arr=a)

方案2:更推荐的numpy向量化写法

你的RGB通道加权计算场景完全不需要用np.apply_along_axis,直接用向量化运算代码更简洁,执行效率也远高于前者:

# 写法1:矩阵乘法
a @ [0.5, 0.25, 0.25]

# 写法2:逐元素乘后求和
(a * [0.5, 0.25, 0.25]).sum(axis=-1)

两种写法均可直接得到你预期的输出[[1.75, 4.75], [4.75, 1.75]]。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 18:54:04