以下のように正規化しようとしている 2D ベクトルの numpy 配列があります。配列には、大きさがゼロのベクトルを含めることができます。
x = np.array([[0.0, 0.0], [1.0, 0.0]])
norms = np.array([np.linalg.norm(a) for a in x])
>>> x/norms
array([[ nan, 0.],
[ inf, 0.]])
>>> nonzero = norms > 0.0
>>> nonzero
array([False, True], dtype=bool)
そのようなものだけnonzero
に除算を適用するためにどういうわけか使用できますか? (私はこれのためにループを書くことができます - これを行うための面倒な方法があるかどうか疑問に思っています)x[i]
nonzero[i]
True
または、ベクトルの配列を正規化し、その過程ですべてのゼロ ベクトルをスキップするより良い方法はありますか?