を正当化するnumpyは、ベクトル化された関数を使用してアレイを正当化するための効率的な方法を提供し、従来のPythonループと比較した改善されたパフォーマンスとコードのシンプルさを提供します。その形状を維持しながら左、右、上、または下に。 def justify(a、nivalid_val = 0、axis = 1、side = 'left'): Invalid_valがnp.nanの場合: mask = 〜np.isnan(a) それ以外: mask = a!= invalid_val justified_mask = np.sort(mask、axis = axis) if(side == 'up')| (side == 'left'): justified_mask = np.flip(justified_mask、axis = axis) out = np.full(a.shape、invalid_val) axis == 1の場合: out [justified_mask] = a [マスク] それ以外: out.t [justified_mask.t] = a.t [mask.t]
output:
n-dimensionalアレイを正当化するための汎用n次元配列
import numpy as np def justify(a, invalid_val=0, axis=1, side='left'): if invalid_val is np.nan: mask = ~np.isnan(a) else: mask = a!=invalid_val justified_mask = np.sort(mask,axis=axis) if (side=='up') | (side=='left'): justified_mask = np.flip(justified_mask,axis=axis) out = np.full(a.shape, invalid_val) if axis==1: out[justified_mask] = a[mask] else: out.T[justified_mask.T] = a.T[mask.T] return out
この関数を返すことは、任意の軸に沿ってn次元配列を正当化し、配列の「フロント」または「終了」のいずれかを正当化することにより、より複雑なシナリオをサポートします。
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3