Теперь Кью работает в режиме чтения

Мы сохранили весь контент, но добавить что-то новое уже нельзя

Какова роль параметра order в NumPy массивах?

Data sciencePython+3
Анонимный вопрос
  ·   · 855
Пишу код и т.п.  · 27 апр 2022  · itustinov.ru
Параметр order при создании массивов, который принимает значения C и F, влияет только на производительность: на скорость Python-циклов, которые перебирают элементы. Может влиять и на другие команды, но нет смысла его менять, если еще неизвестно, какие операции над массивами будут производиться.
От параметра order зависит, как данные располагаются в памяти, а от этого в свою очередь зависит, вдоль какого измерения многомерный масив будет быстрее итерироваться. Измерения, которые идут сплошным куском, при итерации по ним, запрашиваются в основном из кэша процессора, а все остальные измерения, если массив не помещается в кэш, требуют часто обновляться из ОЗУ. Одно такое обновление может занимать десятки тактов процессора.
Это широко известная ситуация, когда в коде вложенные циклы идут по многомерному массиву не в том порядке, в котором элементы упорядочены в памяти. Приводит к замедлению кода. В Си самый левый индекс меняется медленнее всего, поэтому и итерироваться по нему лучше самым внешним (самым медленным) циклом. В Фортране наоборот.