.equals()
сравнивает данные в классе (при условии, что функция реализована). ==
сравнивает местоположения указателя (расположение объекта в памяти).
==
возвращает true, если оба объекта (NOT TALKING OF PRIMITIVES) указывают на экземпляр SAME. .equals()
возвращает true, если два объекта содержат одни и те же данные equals()
Versus ==
в Java
Это может вам помочь.
Массивы Numpy имеют одинаковый тип данных, как вы можете видеть из документации:
numpy.ndarray class numpy.ndarray (shape, dtype = float , buffer = None,
offset = 0, strides = None, order = None) [source] Объект массива представляет многомерный, однородный массив элементов фиксированного размера. Связанный объект типа данных описывает формат каждого элемента в массиве (его порядок байтов, сколько байтов он занимает в памяти, является ли это целым числом, числом с плавающей запятой или чем-то еще и т. Д.)
blockquote>Когда вы используете df.values, все значения будут преобразованы в наиболее подходящий тип данных для сохранения однородности.
В pandas.DataFrame.values также упоминается, что:
Примечания
Тип d будет иметь более низкий общий знаменатель dtype (неявный апкастинг); то есть, если dtypes (даже числовые типы) смешаны, будет выбран тот, который вмещает все. Используйте это с осторожностью, если вы не имеете дело с блоками.
например. Если dtypes - это float16 и float32, dtype будет преобразован в float32. Если dtypes - int32 и uint8, dtype будет преобразован в int32. В соответствии с соглашением numpy.find_common_type (), смешивание int64 и uint64 приведет к типу float64.
BLOCKQUOTE>