Есть ли какая-либо разница между использованием / неиспользованием «astype (np.float)» для narray?

#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.