Следующий код производит различные выходные данные:
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'
по умолчанию.