私はこのように見えるかもしれない配列を持っています:
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)
しかし、何らかの理由で、このコードは何も実行していないようですが、多くの印刷コマンドを実行すると、コードに至るまですべての変数が正しく入力されているように見えます。
単純に「ゼロ値を含む行を削除する」簡単な方法が必要です。
誰かがこれを達成するために書くべきコードを教えてもらえますか?
numpy.delete(x, index)
はうまくいかなかった理由がわかりませんでした。