Преобразование 64-битных данных типа int и float в 32-битные или минимально возможный тип d, который может обрабатывать все данные, улучшает вычислительную скорость?Есть ли причины , а не , чтобы сделать это?
У меня есть два кадра данных панд, каждый с ~ 5 миллионами строк и 23 столбцами, содержащими str
, int
, datetime
, float
и timedelta
тип данных.Вот сокращенная примерная строка, которая включает в себя различные типы данных (см. Ниже код для воссоздания кода):
group job_number submission_time maxvmem wait_time
0 g1 3912841 2018-09-29 16:03:49 4.040196e+09 1 days 15:49:38
Я рассматриваю сопоставление нецифровых чисел с числовыми значениями и создание массива ndarray для ускорения обработки.
Мой вопрос касается дальнейшего шага минимизации размера битов типов данных.Я спрашиваю, потому что я редко / возможно никогда не видел этот шаг в решениях, которые я читал в SO или видел в учебных пособиях.Это заставляет меня задуматься, есть ли причины , а не , чтобы сделать это и просто позволить numpy обрабатывать, какой тип dtype использовать.
MVCE
Вот моя попытка кода воссоздать пример строки выше.Кажется, работает, за исключением timedelta
назначения.Когда я запускаю это, я получаю ValueError: Could not convert object to NumPy timedelta
.Я бы уточнил, если кто-нибудь подскажет мне, как заставить это работать.