Python: can numba work with arrays of strings in nopython mode?

前端 未结 2 756
迷失自我
迷失自我 2021-01-11 18:42

I am using pandas 0.16.2, numpy 1.9.2 and numba 0.20.

Is there any way to get numba to support arrays of strings in nopython mode? Alternatively, could I somehow con

相关标签:
2条回答
  • 2021-01-11 19:30

    numba now supports str (since version 0.41)

    0 讨论(0)
  • 2021-01-11 19:31

    Strings are not yet supported by Numba (as of version 20.0). Actually, "character sequences are supported, but no operations are available on them".

    Indeed, a possible workaround is to interpret characters as numbers. For ASCII characters this is straightforward, see the Python ord and chr functions. However, already for your minimal example, you end with functions that are a lot less readable:

    import numpy as np
    import numba
    
    x=np.array(['some','text','this','is'])
    
    @numba.jit(nopython=True)
    def numba_str(txt):
        x=0
        for i in xrange(txt.shape[0]):
            if (txt[i,0]==116 and  # 't'
                txt[i,1]==101 and  # 'e'
                txt[i,2]==120 and  # 'x'
                txt[i,3]==116):    # 't'
                x += 1
        return x
    
    print numba_str(x.view(np.uint8).reshape(-1, x.itemsize))
    
    0 讨论(0)
提交回复
热议问题