Jupyter Notebook中Python numpy矩阵乘法结果错误,如何修正?
问题排查与修正
错误原因
numpy 默认使用 int32 类型进行整数运算,而你的计算过程中产生的中间结果总和(2494357888)超过了 int32 的最大值(2147483647),导致整数溢出,最终输出错误的负数结果。
修正方案
将数组显式指定为 np.int64 类型(64位整数,支持更大的数值范围),避免溢出问题。修正后的代码如下:
import numpy as np # 将所有数组转换为int64类型 A = np.array([1, 22, 231, 1540], dtype=np.int64) B = np.array([[-1, 1, 0], [1, -1, 1], [0, 6, 0], [0, 6, 0]], dtype=np.int64) C = np.array([[113401201], [10649], [1]], dtype=np.int64) result = np.dot(np.dot(A, B), C) print(result)
补充说明
运行修正后的代码,输出结果为 [2494357888],这是符合矩阵乘法规则的正确数学结果。你提到的"实际正确结果为10372390"可能存在矩阵定义或预期结果的笔误,若确实需要得到该结果,请检查矩阵的维度、元素值或乘法顺序是否正确。
内容的提问来源于stack exchange,提问作者Pruthviraj
相关产品推荐
相关产品推荐

