ホームページ >バックエンド開発 >Python チュートリアル >NumPy 配列からストライドを使用してサブ配列を効率的に作成する方法
ストライド/ステップサイズを使用して Numpy 配列から部分配列を取得する
このコンテキストでは、Python NumPy で部分配列を作成する効率的なアプローチについて説明します。特定のストライドを持つ指定された配列。
これを実現するには、次のように探索します。 2 つの方法:
1.ブロードキャスト アプローチ:
def broadcasting_app(a, L, S): nrows = ((a.size - L) // S) + 1 return a[S * np.arange(nrows)[:, None] + np.arange(L)]
この方法では、ブロードキャストを使用してストライドの行列を作成します。
2.効率的な NumPy ストライドのアプローチ:
def strided_app(a, L, S): nrows = ((a.size - L) // S) + 1 n = a.strides[0] return np.lib.stride_tricks.as_strided(a, shape=(nrows, L), strides=(S * n, n))
このメソッドは、NumPy の効率的なストライドを利用して部分配列行列を作成します。
例:
を検討してください配列a:
a = np.array([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11])
ストライド 3 で長さ 5 の部分配列を作成するには、次のいずれかの方法を使用できます。
subarrays_broadcasting = broadcasting_app(a, L=5, S=3) subarrays_strides = strided_app(a, L=5, S=3)
どちらのアプローチでも次の結果が生成されます。
[[ 1 2 3 4 5] [ 4 5 6 7 8] [ 7 8 9 10 11]]
以上がNumPy 配列からストライドを使用してサブ配列を効率的に作成する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。