すべての形状が異なる3D配列のリストがありますが、すべて同じ形状にする必要があります。また、その形状はリスト内の最小の形状である必要があります。Pythonでリスト内の複数の配列を再編成する方法
たとえば、3つの配列が(115,115,3)、(111,111,3)、(113,113,3)の形状を持つmy_listは、すべてが(111,111,3)である必要があります。それらはすべて正方形のカラー画像なので、形状(x、x、3)になります。
だから私は、主に2つの問題を抱えて:私はリストを作成しながら、変数をループしたり維持することなく、最小の形状配列を見つけるにはどうすればよい
- を?
- リスト内のすべての配列を最小の形状に効率的に設定するにはどうすればよいですか? my_listというの作成中に
は現在、私はので、私はこれを行うことができる最小の形状のための変数を保管しております:
for idx, img in enumerate(my_list):
img = img[:smallest_shape,:smallest_shape]
my_list[idx] = img
私はちょうどこのように感じているではない、最も効率的な方法を、私は私は実現しませんスライスして値を失うが、私はそれを期待する。
1.ソートされていない限り、全体をループせずに最小値を見つけることはできません。しかし、ソートは単なる最小のものを見つけるだけではありません。 2.スライスによる設定は、内部的にnumpyがオブジェクトをコピーする代わりにビューオブジェクトを作成するので、すでに非常に効率的です。 – Kh40tiK
オプションの読み込み中に画像のサイズを変更していますか?これにより、すべての画像が同じ形状になります。 – OddNorg
あなたはそれらの中心に集中したいのですか、または余分な行の列を右下と左上と上にトリミングしたいだけですか? – NaN