Преобразование numpy dtypes в нативные типы Python - PullRequest
182 голосов
/ 26 февраля 2012

Если у меня есть пустой тип dtype, как мне автоматически преобразовать его в ближайший тип данных python?Например,

numpy.float32 -> "python float"
numpy.float64 -> "python float"
numpy.uint32  -> "python int"
numpy.int16   -> "python int"

Я мог бы попытаться придумать отображение всех этих случаев, но предоставляет ли numpy какой-то автоматический способ преобразования своих dty-типов в наиболее близкие возможные нативные типы python?Это отображение не должно быть исчерпывающим, но оно должно преобразовывать общие dtypes, которые имеют близкий аналог python.Я думаю, что это уже происходит где-то в NumPy.

Ответы [ 11 ]

0 голосов
/ 22 февраля 2019

Переведите весь ndarray вместо одного объекта данных:

def trans(data):
"""
translate numpy.int/float into python native data type
"""
result = []
for i in data.index:
    # i = data.index[0]
    d0 = data.iloc[i].values
    d = []
    for j in d0:
        if 'int' in str(type(j)):
            res = j.item() if 'item' in dir(j) else j
        elif 'float' in str(type(j)):
            res = j.item() if 'item' in dir(j) else j
        else:
            res = j
        d.append(res)
    d = tuple(d)
    result.append(d)
result = tuple(result)
return result

Однако при обработке больших кадров данных требуется несколько минут.Я также ищу более эффективное решение.Надеюсь на лучший ответ.

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