gpt4 book ai didi

python - np.transpose() 和 np.reshape() 组合在纯 numpy 和 numba 中给出不同的结果

转载 作者:行者123 更新时间:2023-12-01 01:23:10 24 4
gpt4 key购买 nike

以下代码产生不同的输出:

import numpy as np

from numba import njit


@njit
def resh_numba(a):
res = a.transpose(1, 0, 2)
res = res.copy().reshape(2, 6)
return res

x = np.arange(12).reshape(2, 2, 3)

print("numpy")
x_numpy = x.transpose(1, 0, 2).reshape(2, 6)
print(x_numpy)

print("numba:")
x_numba = resh_numba(x)
print(x_numba)

输出:

numpy
[[ 0 1 2 6 7 8]
[ 3 4 5 9 10 11]]
numba:
[[ 0 4 8 2 6 10]
[ 1 5 9 3 7 11]]

这是什么原因呢?我怀疑某些 order='C'order='F' 发生在某个地方,但我希望 numpy 和 numba 都使用 order='C' 默认情况下到处都是。

最佳答案

这是由于(至少)np.ndarray.copy 实现造成的错误,我在这里提出了一个问题:https://github.com/numba/numba/issues/3557

关于python - np.transpose() 和 np.reshape() 组合在纯 numpy 和 numba 中给出不同的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53595093/

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