次のような配列があります。
ANOVAInputMatrixValuesArray = [[ 0.96488889, 0.73641667, 0.67521429, 0.592875,
0.53172222], [ 0.78008333, 0.5938125, 0.481, 0.39883333, 0.]]
行の 1 つが最後にゼロの値を持っていることに注意してください。すべてのセルにゼロ以外の値を含む行を保持しながら、ゼロを含む行を削除したいと考えています。
ただし、配列にはデータが取り込まれるたびに異なる数の行があり、ゼロは毎回異なる行に配置されます。
次のコード行を使用して、各行のゼロ以外の要素の数を取得します。
NumNonzeroElementsInRows = (ANOVAInputMatrixValuesArray != 0).sum(1)
上記の配列の場合、NumNonzeroElementsInRows
[5 4] が含まれます。
5 は行 0 のすべての可能な値が非ゼロであることを示し、4 は行 1 の可能な値の 1 つがゼロであることを示します。
したがって、次のコード行を使用して、ゼロ値を含む行を見つけて削除しようとしています。
for q in range(len(NumNonzeroElementsInRows)):
if NumNonzeroElementsInRows[q] < NumNonzeroElementsInRows.max():
p.delete(ANOVAInputMatrixValuesArray, q, axis=0)
しかし、何らかの理由で、このコードは何もしていないように見えますが、多くの印刷コマンドを実行すると、すべての変数がコードに至るまで正しく入力されているように見えます。
「ゼロ値を含む行を削除する」簡単な方法が必要です。
これを達成するためにどのコードを書くべきかを誰かに教えてもらえますか?