Я создал сетку 2D сетки w = np.meshgrid(x,y)
, которую я пытаюсь ввести в следующую функцию:векторизации скалярных массив умножения в Python (Numpy)
def f(w):
eigs = np.linalg.eigvals(A0 + w[0]*A1 + w[1]*A2)
return abs(eigs[0] - eigs[-1])
где A0, A1, A2 квадратные матрицы , Но я получаю сообщение об ошибке, которое говорит мне, что операнды нельзя транслировать вместе. В основном происходит то, что w[0]*A1
не векторизован и поэтому w[0]
- это весь блок x-значений сетки вместо каждого отдельного x-значения, то же самое для w[1]*A2
, но с y-значениями.
Я пробовал делать np.vectorize(func)
, но это не работает, и я получаю IndexError.
Спасибо, это работает, но черт возьми, я бы никогда не подумал об этом сам. – Thoth