Кодирование некоторых процедур квантовой механики, я обнаружил любопытное поведение NumPy Python. Когда я умножаю NumPy с более чем двумя массивами, я получаю ошибочные результаты. В приведенном ниже коде я должен написать:Элементное умножение нескольких массивов на Python Numpy
f = np.multiply(rowH,colH)
A[row][col]=np.sum(np.multiply(f,w))
, который дает правильный результат. Однако моя первоначальная формулировка заключалась в следующем:
A[row][col]=np.sum(np.multiply(rowH, colH, w))
, который не выдает сообщение об ошибке, но неверный результат. Где моя ошибка в том, что я могу дать три массива многократной рутине numpy?
Вот полный код:
from numpy.polynomial.hermite import Hermite, hermgauss
import numpy as np
import matplotlib.pyplot as plt
dim = 3
x,w = hermgauss(dim)
A = np.zeros((dim, dim))
#build matrix
for row in range(0, dim):
rowH = Hermite.basis(row)(x)
for col in range(0, dim):
colH = Hermite.basis(col)(x)
#gaussian quadrature in vectorized form
f = np.multiply(rowH,colH)
A[row][col]=np.sum(np.multiply(f,w))
print(A)
:: Примечание :: этот код работает только с NumPy 1.7.0 и выше!
ОК, мой плохой :-). следует ли удалить этот пост или вы считаете его полезным для других? – seb
оставьте его. помог мне :) – mrjrdnthms