передается в функцию do_calc, поэтому ее не нужно запускать каждый раз. Вокруг последних двух строк происходит большой цикл, в котором мы генерируем новые значения для d и каждый раз запускаем do_calc.
Использование ndindex для перебора строк.
Интересно, можно ли это сделать более эффективно, поскольку именно на эту часть код тратит все время. На самом деле a и b не являются постоянными, поэтому мы не можем использовать их в этом примере.
[/code] Итак, a и b — это статические массивы размером 5x10, и я хочу суммировать их в sum_, 1d-массив длиной 10, следующим образом: [list] [*]для каждой строки i из b я хочу включить только индекс d[i], то есть b[i , d[i]], который войдет в положение sum_[d[i]]
[*]для каждой строки i из, я хочу включить все значения до индекса d[i], то есть a[i, 0:d[i]], который перейдет в позиции sum_[0:d[i]]
sum_= array([-5., 6., 7., -3., -3., 8., -2., 9., 10., 0.]) [/code] Я пробовал следующее: [list] [*]Используя порядок Fortan, поскольку в основном мы копируем последний индекс. [code]sum_[/code] передается в функцию do_calc, поэтому ее не нужно запускать каждый раз. Вокруг последних двух строк происходит большой цикл, в котором мы генерируем новые значения для d и каждый раз запускаем do_calc. [*]Использование ndindex для перебора строк. Интересно, можно ли это сделать более эффективно, поскольку именно на эту часть код тратит все время. На самом деле a и b не являются постоянными, поэтому мы не можем использовать их в этом примере.