Matlab から Python にゆっくりと移行しています...
このフォームのリストがあります
list1 = [[1, 2, nan], [3, 7, 8], [1, 1, 1], [10, -1, nan]]
および同じ数の項目を持つ別のリスト
list2 = [1, 2, 3, 4]
nan 値を含まない list1 の要素と、対応する list2 の要素を抽出しようとしています。つまり、結果は次のようになります。
list1_clean = [[3, 7, 8], [1, 1, 1]]
list2_clean = [2, 3]
Matlab では、これは論理インデックスを使用して簡単に実行できます。
ここでは、何らかの形式のリスト内包表記がうまくいくと感じていますが、私は行き詰まっています:
list1_clean = [x for x in list1 if not any(isnan(x))]
これは明らかにlist2には役に立ちません。
または、次の論理インデックス作成の試行は機能しません(「インデックスはリストではなく整数でなければなりません」)。
idx = [any(isnan(x)) for x in list1]
list1_clean = list1[idx]
list2_clean = list2[idx]
私はそれが痛々しいほど些細なことだと確信していますが、私はそれを理解することはできません.