私は外側と内側のfor
ループをベクトル化する方法をチェックしています。これらにはいくつかの計算があり、それらの中にも削除があります - それはそれほど単純ではありません。これらが計算と削除を含むときに、外側と内側のループをベクトル化する
これはどのようにして最適化されますか?
import numpy as np
flattenedArray = np.ndarray.tolist(someNumpyArray)
#flattenedArray is a python list of lists.
c = flattenedArray[:]
for a in range (len(flattenedArray)):
for b in range(a+1, len(flattenedArray)):
if a == b:
continue
i0 = flattenedArray[a][0]
j0 = flattenedArray[a][1]
z0 = flattenedArray[a][2]
i1 = flattenedArray[b][0]
i2 = flattenedArray[b][1]
z1 = flattenedArray[b][2]
if ((np.square(z0-z1)) <= (np.square(i0-i1) + (np.square(j0-j2)))):
if (np.square(i0-i1) + (np.square(j0-j1))) <= (np.square(z0+z1)):
c.remove(flattenedArray[b])
ありがとうございます!申し訳ありませんが、私はこれらの2つの式で間違いを犯したことに気付きました。私はあなたがやったことで遊んでみましたが、それを得ることはできません。私は元の投稿の2つの公式を修正しました。もう一度それをチェックしてもよろしいですか? – user1812626
@ user1812626私はそれが正しいと思う、見てください:) – MSeifert