Установка * по умолчанию * порядка данных (C против Fortran) в Numpy

Я портирую некоторый код MATLAB на Numpy. Эта задача включает удаление MEX из некоторого кода C ++ и замену его эквивалентными вызовами C-API Numpy. Одна из проблем заключается в том, что код MEX обрабатывает входящие данные как упорядоченные в Фортране, потому что именно так MATLAB упорядочивает свои массивы. Numpy, с другой стороны, по умолчанию использует порядок C.

За исключением полного переписывания MEX-кода для упорядочивания C, я могу:

  • (A) Переупорядочить массивы, входящие в C-код, с помощью .copy ('F') и переупорядочите те, которые выходят с помощью .copy ('C')
  • (B) Выясните, как заставить numpy "эмулировать" MATLAB, выполняя все в порядке Fortran с самого начала.

Вариант A - в настоящее время реализован - работает нормально, но ужасно неэффективен. Кто-нибудь знает, как заставить работать вариант B?

11
задан BrianTheLion 27 October 2011 в 02:15
поделиться