gpt4 book ai didi

python - Numpy.mean 返回数组和数组副本的不同结果

转载 作者:太空宇宙 更新时间:2023-11-04 04:28:34 25 4
gpt4 key购买 nike

我有一个问题可以归结为以下几点:

import numpy as np

X = np.array([[98489.46, 98491.95000000001, 98496.93000000001,
98499.42000000001, 98504.40000000001, 98506.89000000001,
98511.87000000001, 98514.36000000002, 98519.34000000001,
98521.83], [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]], order='F')

Y = X.copy()
assert(np.array_equal(X, Y))

print(X.mean(axis=1)[0] - X[0, :].mean())

print(Y.mean(axis=1)[0] - Y[0, :].mean())

第一种情况打印出 -1.4551915228366852e-11,这让我感到意外。它基本上是说第一行的平均值与第一行的平均值不同。

第二种情况打印 0,这在孤立结果方面是预期的 - 但我没想到这与第一种情况不同,因为 Y 是只是 X 的(我猜是内存连续的)副本。

也许这一切都可以通过求和的顺序来解释,但这里到底发生了什么?

最佳答案

a.copy() 方法等同于np.array(a)。如 docs 所述, 要获得具有相同内存布局的副本,您应该将 order 指定为:

Y = X.copy(order='F')

meansum 等函数具有固有的浮点精度,这可能是该内存布局错误的根源。我在使用命令“K”、“A”或“C”时遇到 0 个错误(numpy 默认值)

关于python - Numpy.mean 返回数组和数组副本的不同结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53085232/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com