【问题标题】:Adding a submatrix at a certain location rounds down all entries in the submatrix (python)在某个位置添加子矩阵会向下舍入子矩阵中的所有条目(python)
【发布时间】:2021-03-08 16:24:57
【问题描述】:

我想在某个位置添加一个子矩阵,发现下面的文章解决了这个问题: Add submatrices at certain locations

我现在的问题是,当我这样做时,最初由浮点组成的子矩阵将被四舍五入为整数。我需要精确度。

具体来说是这样的:

[[  1.   0.   0.]
 [  0. -22. -10.]
 [  0. -10.   1.]]

[[-22.           0.        ]
 [  0.           5.54545455]]

[[  1   0   0]
 [  0 -22   0]
 [  0   0   5]]

我的代码采用一个矩阵 A 和一个由多个子矩阵组成的列表 matrix_list。 然后我在下面的代码中将它们添加在一起

for i, C in enumerate(matrix_list):
    A[i:C.shape[0] + 1, i:C.shape[0] + 1] = C

我已尝试添加 np.set_printoptions(precision=20),以查看是否是打印问题,但这只会有所不同,因为已经存在浮点数。

【问题讨论】:

  • 如果将浮点值分配给int dtype 数组,则这些值将被截断为整数。

标签: python numpy matrix precision submatrix


【解决方案1】:

我想通了。如果 A 的原始值都是 int,则该矩阵是 int 矩阵。我因此添加了行 A = A.astype(np.float32),它解决了问题。

这可以关闭(遗憾的是我自己还不能这样做)

【讨论】:

    猜你喜欢
    • 2015-12-16
    • 1970-01-01
    • 1970-01-01
    • 2016-12-21
    • 1970-01-01
    • 2021-05-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多