Structured array field index to field name

Depends what you are doing, if the indexing is into something heterogeneous in type, generally yes, if not, generally no. This is another way to do the above, but relies on a baked in tuple again.

from numba import njit, from_dtype, literally, types, literal_unroll
import numpy as np
x = np.array([('Rex', 9, 81.0), ('Fido', 3, 27.0)], dtype=[('name', 'U10'), ('age', 'i4'), ('weight', 'f4')])

numba_type = from_dtype(x.dtype)
print("x.dtype.names", x.dtype.names)  # print the field names using dtype
print("numba_type.members", [x[0] for x in numba_type.members]) # print the field names using Record

names = tuple(x.dtype.names)

from numba.extending import overload

#going to overload this function
def resolve(idx, dt):
    pass

@overload(resolve)
def ol_resolve(idx, dt):
    names = tuple(dt.dtype.fields) # this is just going to get baked in
    def impl(idx, dt):
        return names[idx]
    return impl

@njit
def foo():
    print([resolve(i, x) for i in range(3)])

foo()