Numpy по-разному обрабатывает небольшие воображаемые деталиPython

Программы на Python
Ответить
Anonymous
 Numpy по-разному обрабатывает небольшие воображаемые детали

Сообщение Anonymous »

Существует разница в поведении на macOS с процессором Arm64 и на других Linux с процессором AMD64.
Для numpy v1 на Arm64, похоже, существует внутренняя логика, гарантирующая, что мнимая часть будет равна ровно 0:

Код: Выделить всё

>>> import numpy as np
>>> np.__version__
'1.26.4'
>>> x = 0.1 + 0.2j
>>> x * np.conj(x)
(0.05000000000000001+0j)
Для версии 2 на Arm64 эта проверка отключена, и мнимая часть колебалась на границе двойной точности, как и ожидалось:

Код: Выделить всё

>>> import numpy as np
>>> np.__version__
'2.3.5'
>>> x = 0.1 + 0.2j
>>> x * np.conj(x)
np.complex128(0.05000000000000001+1.6653345369377347e-18j)
Для v1 и v2 на amd64 проверка, похоже, включена, а мнимая часть равна точно 0.
Есть ли собственный способ повторно включить эту проверку на macosx-arm64 и получить результаты с мнимой частью, равной 0?

Подробнее здесь: https://stackoverflow.com/questions/798 ... ifferently
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»