다음과 같은 배열이 있습니다.
ANOVAInputMatrixValuesArray = [[ 0.96488889, 0.73641667, 0.67521429, 0.592875,
0.53172222], [ 0.78008333, 0.5938125, 0.481, 0.39883333, 0.]]
행 중 하나의 끝에 0 값이 있습니다. 모든 셀에서 0이 아닌 값을 포함하는 모든 행을 유지하면서 0이 포함 된 모든 행을 삭제하고 싶습니다.
그러나 배열은 채워질 때마다 다른 수의 행을 가지며 0은 매번 다른 행에 위치합니다.
다음 코드 줄을 사용하여 각 행에서 0이 아닌 요소의 수를 얻습니다.
NumNonzeroElementsInRows = (ANOVAInputMatrixValuesArray != 0).sum(1)
위 배열의 경우 다음을 NumNonzeroElementsInRows
포함합니다. [5 4]
5는 행 0의 가능한 모든 값이 0이 아님을 나타내고 4는 행 1의 가능한 값 중 하나가 0임을 나타냅니다.
따라서 다음 코드 줄을 사용하여 0 값이 포함 된 행을 찾아 삭제하려고합니다.
for q in range(len(NumNonzeroElementsInRows)):
if NumNonzeroElementsInRows[q] < NumNonzeroElementsInRows.max():
p.delete(ANOVAInputMatrixValuesArray, q, axis=0)
그러나 어떤 이유로이 코드는 많은 인쇄 명령을 수행하면 모든 변수가 코드로 이어지는 올바르게 채워지는 것처럼 보임에도 불구하고 아무것도 수행하지 않는 것 같습니다.
"0 값을 포함하는 모든 행을 삭제"하는 쉬운 방법이 있어야합니다.
누구든지 이것을 수행하기 위해 작성해야 할 코드를 보여줄 수 있습니까?
numpy.delete(x, index)
가 안되는지 알 수 없었다 .