преобразовать число с плавающей точкой в ​​строку - PullRequest
5 голосов
/ 25 октября 2019

Я использую функцию @nb.njit, в которой я пытаюсь поместить целое число в строковый массив.

import numpy as np
import numba as nb

@nb.njit(nogil=True)
def func():
    my_array = np.empty(6, dtype=np.dtype("U20"))
    my_array[0] = np.str(2.35646)
    return my_array


if __name__ == '__main__':
    a = func()
    print(a)

Я получаю следующую ошибку:

numba.errors.TypingError: Failed in nopython mode pipeline (step: nopython frontend)
Invalid use of Function(<class 'str'>) with argument(s) of type(s): (float64)

Какую функцию я должен использовать для преобразования из float в string в numba?

1 Ответ

3 голосов
/ 29 октября 2019

Функция numpy.str пока не поддерживается. Список всех поддерживаемых numpy функций доступен на веб-сайте Numba.

Встроенная str также не поддерживается. Это можно проверить на странице поддерживаемых функций Python .

Единственный способ сделать то, что вы пытаетесь, - это как-то создать функцию, которая преобразует число с плавающей точкой в ​​строку, используя толькоособенности Python и Numpy, поддерживаемые Numba.

Прежде чем идти в этом направлении, я бы все же пересмотрел необходимость преобразования чисел с плавающей точкой в ​​строки. Это может быть не очень эффективно, и вы можете потерять преимущество сочетания нескольких функций, добавив некоторые накладные расходы из-за преобразования чисел с плавающей запятой в строку.

Конечно, трудно сказать, не зная больше о проекте.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...