是什么导致numpy中C和F有序数组沿轴的数组总和不同

是什么导致numpy中C和F有序数组沿轴的数组总和不同,第1张

是什么导致numpy中C和F有序数组沿轴的数组总和不同

这几乎可以肯定是numpy有时使用成对求和,有时不使用成对的结果。

让我们构建一个诊断数组:

eps = (np.nextafter(1.0, 2)-1.0) / 21+eps+eps+eps# 1.0(1+eps)+(eps+eps)# 1.0000000000000002X = np.full((32, 32), eps)X[0, 0] = 1X.sum(0)[0]# 1.0X.sum(1)[0]# 1.000000000000003X[:, 0].sum()# 1.000000000000003

这强烈表明一维数组和连续轴使用成对求和,而多维数组中的跨步轴则不使用。

请注意,要看到这种效果,数组必须足够大,否则numpy会退回到普通求和。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5143482.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-17
下一篇 2022-11-17

发表评论

登录后才能评论

评论列表(0条)

保存