ホームページ >バックエンド開発 >Python チュートリアル >NumPy ベクトル化関数はどのようにして NumPy 配列を複数の方向に効率的に位置合わせできるのでしょうか?
一般化ベクトル化関数を使用した NumPy 配列の位置調整
はじめに
NumPy 配列の位置調整とは次のことを指しますゼロ以外の要素を配列の片側にシフトして、操作や操作を容易にします。 プロセス。提供されている Python 関数は 2D 行列の左揃えに重点を置いていますが、より効率的かつ包括的なアプローチは、NumPy ベクトル化関数を使用することです。
配列の両端揃え用の NumPy ベクトル化関数
次の関数 justify は、2D 配列を上下だけでなく左右にも位置揃えする一般的な方法を提供します。方向:
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
パラメータ:
使用例:
a = np.array([[1, 0, 2, 0], [3, 0, 4, 0], [5, 0, 6, 0], [0, 7, 0, 8]]) justified_array = justify(a, side='left') print(justified_array) # Output: # [[1, 2, 0, 0], # [3, 4, 0, 0], # [5, 6, 0, 0], # [7, 8, 0, 0]]
justified_array = justify(a, axis=0, side='up') print(justified_array) # Output: # [[1, 7, 2, 8], # [3, 0, 4, 0], # [5, 0, 6, 0], # [6, 0, 0, 0]]
NumPy の利点関数:
結論
提供されている NumPy 関数 justify は、NumPy 配列を正当化する堅牢かつ効率的な方法を提供します。その一般化された性質とベクトル化された実装により、配列操作およびタスク処理のための多用途ツールになります。
以上がNumPy ベクトル化関数はどのようにして NumPy 配列を複数の方向に効率的に位置合わせできるのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。