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

使用np.vectorize向量化np.linalg.det函数报错,求问题原因

问题原因

np.vectorize会把输入数组拆解到标量级别逐个传递给被包装函数,但np.linalg.det要求输入至少是二维数组。你的fulldata是形状为(4,2,2)的三维数组,vectorize会遍历到最底层的每个0维标量并传给det,这完全不符合det的输入要求,因此抛出维度错误。

解决方案

最优方案:直接调用np.linalg.det

np.linalg.det本身支持批量处理三维数组,它会自动将最后两个维度视为单个矩阵,计算每个矩阵的行列式,无需额外封装:

np.linalg.det(fulldata)

备选方案:列表推导式

如果需要显式遍历每个矩阵,也可以用列表推导式实现(效率略低于直接调用det):

np.array([np.linalg.det(mat) for mat in fulldata])

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 12:15:02