Как заставить numpy упорядочить массив для стиля fortran?

Я использую довольно много библиотек fortran для выполнения математических вычислений. Таким образом, все массивы в numpy должны быть Fortran-смежными .
В настоящее время я выполняю это с помощью numpy.asfortranarray () .

Мои вопросы:

  1. Является ли это быстрым способом сообщить numpy, что массив должен храниться в fortran-стиле или есть более быстрый?
  2. Есть ли возможность установить некоторый флаг numpy, чтобы каждый созданный массив находился в стиле fortran?

2 Solutions collect form web for “Как заставить numpy упорядочить массив для стиля fortran?”

Используйте необязательный параметр порядка = 'F' (по умолчанию 'C'), при создании объектов numpy.array. Так я это делаю, возможно, делает то же самое, что и вы. Что касается номера 2, я не знаю, как установить порядок по умолчанию, но достаточно просто включить произвольный аргумент заказа при создании массивов.

Что касается вопроса 2: вы можете быть обеспокоены сохранением порядка Fortran после выполнения преобразований и операций массива. У меня была аналогичная проблема с контентом. Я загрузил массивный массив из файла, но когда я применил преобразование журнала, результирующий массив был бы малоподобным. Я столкнулся с проблемой, сначала выделив второй массив big-endian, затем выполнив локальный журнал:

b=np.zeros(a.shape,dtype=a.dtype) np.log10(1+100*a,b) 

В вашем случае вы должны выделить b с помощью порядка Fortran.

  • В numpy, что делает выбор с помощью ?
  • Самый быстрый способ численного обработки 2d-массива: dataframe vs series vs array vs numba
  • Ковариационная матрица из np.polyfit () имеет отрицательную диагональ?
  • Вывод данных из всех столбцов в кадре данных в пандах
  • Ошибка при попытке установить sklearn из Pycharm | arrayobject.h не может быть абсолютным
  • sklearn "numpy.dtype имеет неправильный размер, попробуйте перекомпилировать" как в pycharm, так и в терминале
  • numpy: расширение массивов вдоль новой оси?
  • Как реализовать оценку плотности ядра в многомерном / 3D
  • Python - лучший язык программирования в мире.