以下は Python での配列、リスト、コロンの柔軟な使用方法の紹介です。これは非常に参考になるので、皆さんのお役に立てれば幸いです。一緒に見てみましょう
例を見てみましょう:
import numpy as np x=np.array([[1,2,3],[5,6,7],[7,8,9]]) print(x) Out[64]: array([[1, 2, 3], [5, 6, 7], [7, 8, 9]])
これは、np 配列を定義するだけです。
print(x[:,::-1]) Out[65]: [[3 2 1] [7 6 5] [9 8 7]]
上記のコードは、配列を各次元で逆順に配置する関数を実装しています。 このコードを理解する方法は、ディープ ラーニング スタイルの移行を行うときに発生したものです。問題の 1 つは、画像の rgb を bgr に変更することですが、最初は他の人が書いたコードを見て、transpose の説明については、私のブログを参照してください。ここではそれを説明しますが、transpose は次元であるため、実際には機能しません。そして、なぜ二重コロンが使用できるのかについて考えてみました。以下に説明します。 [:,::-1]、このコードは実際にはインデックスであり、最初のコロン (カンマの前) です。明らかに、最初の次元のすべて、つまりここにあるすべての行を選択し、その後に 2 つのコロンが続きます。たとえば、リスト y=[1,2,3],y[: 2] の場合、結果は [1,2] になります。つまり、最初のコロンは最初のコロンから開始することを意味します。ここのカンマの後の最初のコロンも最初のコロンから始まります。実際、2 番目のコロンは終わりを表し、y=[1,2,3],y[::] になります。結果は次のようになります。 [1,2,3]、3 番目のパラメータは何ですか? 実際、3 番目のパラメータはステップ サイズです。ステップ サイズを 0 にすることはできません。-1 は逆順を意味し、1 の場合はすべてを選択することを意味します。が 2 の場合、1 つおきに取ることを意味します。
次のコードを見てください:
x=np.array([[1,2,3],[5,6,7],[7,8,9]]) print(x) print('------------') print(x[:,::-1]) print('------------') print(x[:,::1]) print('------------') print(x[:,::2]) print('------------') print(x[:,::3]) print('------------') print(x[:,::666666]) x=np.array([[1,2,3],[5,6,7],[7,8,9]]) print(x) print('------------') print(x[:,::-1]) print('------------') print(x[:,::1]) print('------------') print(x[:,::2]) print('------------') print(x[:,::3]) print('------------') print(x[:,::666666]) [[1 2 3] [5 6 7] [7 8 9]] ------------ [[3 2 1] [7 6 5] [9 8 7]] ------------ [[1 2 3] [5 6 7] [7 8 9]] ------------ [[1 3] [5 7] [7 9]] ------------ [[1] [5] [7]] ------------ [[1] [5] [7]]
上記のコードから、x[:,:::666666] が非常に大きい理由は、最初からそうであることがわかります。最初に、次はステップ サイズを表します。66666 と同じくらい大きい場合、実際には、ステップ サイズ 3 からは最初の 1 つしか取得できません。リストについても同様です。
関連する推奨事項:
Python の For ループおよび range 組み込み関数
以上がPython の配列とリスト: コロンの使用の概要の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。