0
私はPythonで行列を使用して、以下のループを実装する:python 2.7(numpy)でループを使わないでこれらの行列演算を行うことは可能ですか?
import numpy as np
n = 5 # samples
k = 2 # inputs
m = 3 # gaussians
# X is nxk
X = np.array([[0.0, 10.0], [20.0, 30.0],[40, 50],[60,70],[80,90]])
#locations is mxk
locations = np.array([[0.01, 0.02], [0.03,0.04], [0.05, 0.06]])
dev = np.empty([n,k,m])
for samples in range(n):
for inputs in range(k):
for gaussians in range(m):
dev[samples,inputs,gaussians]=X[samples,inputs]-locations[gaussians,inputs]
output = np.empty([n,m])
for samples in range(n):
for gaussians in range(m):
output[samples,gaussians]=np.sum(dev[samples,:,gaussians]*dev[samples,:,gaussians])
私はnumpyのは、異なる寸法(Broadcast)の配列を使用して操作を行うことが可能であることを知っているが、私はここにこの概念を使用することはできませんよ。私は基本的にベクトルのサンプルの平均を取り除き、その二乗ノルムを計算することに注意してください。
あなたは両方 'DEVが必要です'と' output'または単に 'output'が必要で、' dev'が中間結果ですか? – Psidom
私はただ "出力"が必要です! – DanielTheRocketMan