ここにMWEがあります。numpy配列のリスト内の要素をゼロにします。
以下のリストがあります。
vectors = [np.array([ 0. , 0.8660254, 0. ]),
np.array([ 1.10501514e-08, 8.64943091e-01, 4.32832253e-02]),
np.array([ 1.34263203e-08, 8.61698881e-01, 8.64582689e-02]),
np.array([ 2.35976215e-08, 8.56300871e-01, 1.29417208e-01]),
np.array([ 1.32175872e-08, 8.48762560e-01, 1.72052683e-01])]
目標:リスト内の各配列について、私は、配列の値に対してzero tolerance
を設定します。
ここで私はそれをしましたです。
def set_zero(vector):
ZERO_TOL = 1e-07
vector[vector <= ZERO_TOL] = 0
return vector
new_vecs = [set_zero(vector) for vector in vectors]
これは私に意図された結果をもたらします。
質問:ちょうどlist comprehension
を使用してset zero
機能を使用せずにこれを行う方法はありますか?以下のような何か...
希望的観測コード:
ZERO_TOL = 1e-07
new_vecs = [vector[vector <= ZERO_TOL] = 0 for vector in vecs]
私が尋ねる理由は、私が働いている実際の配列があるが、長いエントリの数千人であり、私はこのために私のコードを最適化したいと思います理由。
(あなたは2D
np.array
にあなたのリストを変換すると仮定した場合)配列のリストの代わりに構造全体をnumpy配列として保持しないのはなぜですか? – sascha