寅恪光潜 2022-04-15 09:58 采纳率: 100%
浏览 40
已结题

浮点数转整型的疑惑,单位矩阵

问题遇到的现象和发生背景

M=np.mat("1 22 44 5;1 0 -3 6;-9 -3 8 1;1 3 4 9")
I=np.linalg.inv(M)
问题相关代码,请勿粘贴截图
运行结果及报错内容

现在的疑惑是转成整型的时候,为什么结果是
(M*I).astype(int)
matrix([[0, 0, 0, 0],
[0, 1, 0, 0],
[0, 0, 0, 0],
[0, 0, 0, 0]])

我的解答思路和尝试过的方法
我想要达到的结果

正确结果应该是
array([[1., 0., 0., 0.],
[0., 1., 0., 0.],
[0., 0., 1., 0.],
[0., 0., 0., 1.]])
这样才对啊,请问大家是哪里出了问题

  • 写回答

3条回答 默认 最新

  • 夜半罟霖 2022-04-15 10:40
    关注

    因为第一个数不是1,只是因为print显示的小数点位数不够约成了1,你用int转类型直接截取的整数部分0。

    print((M*I)[0,0])
    0.9999999999999986
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 4月23日
  • 已采纳回答 4月15日
  • 创建了问题 4月15日