#python-3.x #numpy #user-defined-types #numpy-ndarray
#python-3.x #numpy #определяемые пользователем типы #numpy-ndarray
Вопрос:
Я собираюсь импортировать текстовый файл, который содержит только числа, для некоторой практики кодирования.
Заметил, что я могу получить тот же результат либо с code_1, либо с code_2:
code_1 = np.array(pd.read_csv('e:/data.txt', sep='t', header=None)).astype(np.float)
code_2 = np.array(pd.read_csv('e:/data.txt', sep='t', header=None))
Итак, мне интересно, есть ли какая-либо разница между использованием или неиспользованием .astype(np.float)
?
пожалуйста, скажите мне, есть ли подобный вопрос. спасибо большое.
Ответ №1:
DataFrame.astype()
метод используется для приведения объекта pandas к указанному dtype
. astype()
функция также предоставляет возможность преобразовать любой подходящий существующий столбец в категориальный тип.
DataFrame.astype()
Функция очень удобна, когда мы хотим преобразовать конкретный тип данных столбца в другой тип данных.
В вашем случае файл загружается как DataFrame
. Числа будут загружены как целые числа или числа с плавающей запятой в зависимости от чисел. astype(np.float)
Метод преобразует числа в числа с плавающей запятой. С другой стороны, если числа уже имеют тип float, то, как вы видели, между ними не будет никакой разницы.
Комментарии:
1. спасибо bg2094. Не кажется
np.array()
ли вам, что сначала применяется к DataFrame.astype(np.float)
?2. За исключением того, что в этом случае это np.array(DataFrame).astype() , функция ndarray, но эффект тот же. Также я не помню, какой np.float используется по умолчанию, но я считаю, что существуют 32- и 64-разрядные варианты, так что эта разница тоже может быть.
3. Да, как упоминал @IcedLance, эффект все тот же. По умолчанию np.float по умолчанию равен 64. Плавающие значения Python по умолчанию тоже 64.