Что выведет код Middle Производительность и память обновлено
downcast и int8
Вопрос
Что выведет код? По строке на каждый print.
import pandas as pd
a = pd.to_numeric(pd.Series([1, 2, 3]), downcast='integer')
b = pd.to_numeric(pd.Series([1, 2, 300]), downcast='integer')
c = pd.Series(['x', 'y'] * 1000).astype('category')
print(a.dtype, b.dtype)
print(c.cat.codes.dtype, len(c.cat.categories))
Попробуйте сами
Напишите, что выведет код: каждый вывод с новой строки.
Показать ответ и разбор
Коротко
Код выведет: int8 int16, int8 2. downcast выбирает минимальный целый тип: 1..3 помещаются в int8, 300 уже требует int16.
Что выведет
int8 int16
int8 2
Разбор
downcast выбирает минимальный целый тип: 1..3 помещаются в int8, 300 уже требует int16. У категории два значения, коды хранятся в int8.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.
Термины по теме
Ещё по теме «Производительность и память»
- Чем заменить apply(axis=1)
- Когда помогает тип category
- Цепочное присваивание в pandas 3.0
- Обнулить тестовые заказы через loc
- Скидка по категории через map
- Категории сумм через np.select
- Ужать DataFrame: category и downcast
- category теряется при concat