列块上的numpy matmul vs一次一个

列块上的numpy matmul vs一次一个,numpy,Numpy,考虑以下代码 import numpy as np L = 10000 n = 5 a = np.random.random([L, n+1]) b = np.zeros((5,)) for k in range(n): b[k] = a[:, k].T @ a[:, n] c = a[:, :n].T @ a[:, n] print(b-c) b中的项一次求值一个,c中的矩阵乘法在列块上“集体”求值。我不明白为什么会有稍微不同的结果这些差异的顺序是1e-12。

考虑以下代码

import numpy as np
L = 10000
n = 5
a = np.random.random([L, n+1])
b = np.zeros((5,))
for k in range(n):
    b[k] = a[:, k].T @ a[:, n]
c = a[:, :n].T @ a[:, n]
print(b-c)

b中的项一次求值一个,c中的矩阵乘法在列块上“集体”求值。我不明白为什么会有稍微不同的结果

这些差异的顺序是
1e-12