Предположим, я хочу применить функцию fun c к попарным элементам numpy массива A, и я хочу создать новую матрицу M, где M[i,j] = func(A[i],A[j]). Есть ли способ сделать это в Python без использования циклов?
M[i,j] = func(A[i],A[j])
Да, просто что-то вроде этого (при условии, что ваша func - приятная numpy дружественная функция):
func
A = np.arange(5) def f(x,y): return x+2*y X,Y = np.meshgrid(A,A) M = f(X,Y)
Если не numpy дружественный, вы можете посмотреть на np.vectorize.
np.vectorize