首页 > 解决方案 > 将浮点数转换为字符串 numba python numpy 数组

问题描述

我正在运行一个@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)

我应该使用哪个函数来进行从内部floatstring内部的转换numba

标签: pythonstringnumpyfloating-pointnumba

解决方案


numpy.str目前不支持该功能。Numba 的网站上提供了所有受支持numpy功能的列表。

str也不支持内置。这可以在受支持的 Python 功能页面上进行检查。

做你正在尝试的唯一方法是以某种方式制作一个将浮点数转换为字符串的函数,仅使用 Numba 支持的 Python 和 Numpy 的功能。

在朝着这个方向前进之前,我仍然会重新考虑将浮点数转换为字符串的必要性。它可能不是很有效,并且由于将浮点数转换为字符串,您可能会因为增加一些开销而失去对一些函数进行抖动的好处。

当然,如果不了解该项目的更多信息,这很难说。


推荐阅读