Я портирование C++ научного приложения к питону, и, как я новичок в Python, некоторые проблемы приходят на ум:Лучше использовать кортеж или Numpy массив для хранения координат
1) я определяю класс, который будет содержать координаты (x, y). Эти значения будут доступны несколько раз, но они будут прочитаны только после создания экземпляра класса. Лучше ли использовать кортеж или массив numpy, как в памяти, так и в режиме времени?
2) В некоторых случаях эти координаты будут использоваться для построения сложного числа, оцененного по сложной функции, и будет использоваться действительная часть этой функции. Предполагая, что нет возможности разделить реальные и сложные части этой функции, и реальная часть должна быть использована в конце, может быть, лучше использовать непосредственно сложные числа для хранения (x, y)? Насколько плохи накладные расходы с преобразованием от сложного к реальному в python? Код в C++ делает много этих преобразований, и это большое замедление в этом коде.
3) Также необходимо будет выполнить некоторые преобразования координат, а для координат значения x и y будут доступны в отдельности, трансформация будет выполнена, и результат будет возвращен. Преобразования координат определены в комплексной плоскости, поэтому еще быстрее использовать компоненты x и y непосредственно, чем полагаться на комплексные переменные?
Спасибо
Почему бы просто не использовать массив numpy комплексных чисел? – Gabe
Это лучший подход в смысле алгоритма, но, насколько мне показали мои тесты, это самая медленная комбинация. – Ivan