問題タブ [numpy-slicing]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
5 に答える
186 参照

python - Python で任意のスライスを反転する

Python でスライスを反転する一般的な方法を探しています。この包括的な投稿を読みました。これには、スライスの仕組みについていくつかの素晴らしい説明があります: Understanding Python's slice notation

それでも、まったく同じ要素を逆の順序でアドレス指定する逆スライスを計算する方法に関する一般化されたルールを理解することはできません。これを行う組み込みメソッドが見つからないことに、私は実際に驚きました。

私が探しているのは、reversed_slice任意startの 、stopおよびstep負の値を含む値で次のように機能するメソッドです。

私が試したがうまくいかないのはこれです:

1これは、最後のアドレス指定された要素が と一致する場合に、 のステップに対して正常に機能しstop-1ます。それ以外の場合は、次のことはしません。

のような関係が欠けているよう(stop - start) % stepです。一般的なメソッドの書き方に関するヘルプは大歓迎です。

ノート:

  • を呼び出すなど、同じ要素を逆にしたシーケンスを取得する他の可能性があることは知っていますreversed(a[s])。スライス自体を逆にする必要があるため、これはここではオプションではありません。その理由は、スライスにh5py負の値を許可しないデータセットに取り組んでいるためです。step

  • 簡単ですがあまり洗練されていない方法は、座標リストを使用することa[list(reversed(range(*s.indices(len(a)))))]です。h5pyリスト内のインデックスは昇順で指定する必要があるため、これもオプションではありません。