Используя python / numpy, я хотел бы создать 2D-матрицу M, компоненты которой:
Я знаю, что могу это сделать с кучей циклов for, но есть ли лучший способ сделать это с помощью numpy (без использования циклов for)?
Вот как я пытался, и в итоге я получил ошибку в значении.
Я попытался сначала определить функцию, которая принимает сумму по k:
define sum_function(i,j):
initial_array = np.arange(g(i,j),h(i,j)+1)
applied_array = f(i,j,initial_array)
return applied_array.sum()
, затем я попытался создать матрицу M с помощью np.mgrid следующим образом:
ii, jj = np.mgrid(start:fin, start:fin)
M_matrix = sum_function(ii,jj)
-
(Отредактировано) Позвольте мне записать конкретную форму матрицы в качестве примера: M_ {i, j} = \ sum_ {k = min (i, j)} ^ {i + j} \ sin {\ left ((i + j) ^ k \ right)}
M_ {i, j} = \ sum_ {k = min (i, j)} ^ {i + j} \ sin {\ left ((i + j) ^ k \ right)}
если i, j = 0,1, то эта матрица 2 на 2, и ее форма будет \ bigl (\ begin {smallmatrix} \ sin (0) & \ sin (1) \ \ sin ( 1) & \ sin (2) + \ sin (4) \ end {smallmatrix} \ bigr)
\ bigl (\ begin {smallmatrix} \ sin (0) & \ sin (1) \\ \ sin (1) & \ sin (2) + \ sin (4) \ end {smallmatrix} \ bigr)
Теперь, если матрица станет действительно большой, как бы я создал эту матрицу без использования циклов for?