Странное взаимодействие между изменением формы и приведением типов в NumbaPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Странное взаимодействие между изменением формы и приведением типов в Numba

Сообщение Anonymous »

Я заметил, что когда я передаю двумерный массив из 0 и 1 в функцию Numba njit, изменяю его форму, а затем привожу к np.int32 или numba.int32, результирующий массив при печати отличается. >
Вот пример кода:

Код: Выделить всё

import numpy as np
from numba import njit

array_2d = np.array([[0, 1, 0, 1, 1, 0, 0, 1],
[0, 1, 1, 0, 1, 1, 0, 0],
[0, 1, 1, 0, 1, 1, 0, 0]]).T

num_cols = array_2d.shape[1]
num_rows = array_2d.shape[0]

@njit
def f(array, num_rows, num_cols):
pairs = array.reshape(num_rows // 2, 2, num_cols)

pairs_cast = pairs.astype(numba.int32)

return pairs, pairs_cast

pairs, pairs_cast = f(array_2d, num_rows, num_cols)

print("Pairs:")
print(pairs)
print("\nPairs cast to int32:")
print(pairs_cast)
Вывод:

Код: Выделить всё

Pairs:
[[[0 0 0]
[1 1 1]]

[[0 1 1]
[1 0 0]]

[[1 1 1]
[0 1 1]]

[[0 0 0]
[1 0 0]]]

Pairs cast to int32:
[[[0 0 0]
[1 1 1]]

[[1 1 1]
[0 1 1]]

[[0 1 1]
[0 0 0]]

[[1 0 0]
[1 0 0]]]
Было бы любопытно узнать, что здесь происходит.


Подробнее здесь: https://stackoverflow.com/questions/791 ... g-in-numba
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»