刪除行我有一個數組看起來像這樣的:在numpy的陣列
ANOVAInputMatrixValuesArray = [[ 0.96488889, 0.73641667, 0.67521429, 0.592875,
0.53172222], [ 0.78008333, 0.5938125, 0.481, 0.39883333, 0.]]
注意,行已在最後一個零值。我想刪除包含零的任何行,同時保留所有單元格中包含非零值的行。
但是每次填充時數組都會有不同數量的行,並且每次都將位於不同的行中。
我得到每行中非零元素與下面的代碼行的數目:
NumNonzeroElementsInRows = (ANOVAInputMatrixValuesArray != 0).sum(1)
對於上面的陣列,NumNonzeroElementsInRows
包括:[5 4]
五個表明第0行中的所有可能值都是非零值,而第4行則表示第1行中的一個可能值爲零。
因此,我試圖使用以下幾行代碼來查找和刪除包含零值的行。
for q in range(len(NumNonzeroElementsInRows)):
if NumNonzeroElementsInRows[q] < NumNonzeroElementsInRows.max():
p.delete(ANOVAInputMatrixValuesArray, q, axis=0)
但由於某些原因,該代碼似乎並沒有做任何事情,即使做了很多打印命令表明所有的變量似乎是正確的填充導致該代碼。
必須有一些簡單的方法來簡單地「刪除任何包含零值的行」。
任何人都可以告訴我要寫什麼代碼來完成這個任務嗎?
簡單一點:對[〜(P == 0).ANY(1)]或行更加明確:P [〜(P == 0).ANY(1),:] – user333700 2010-10-07 01:19:52
@ user333700 - 這應該是一個答案 - 你一定會得到我的投票!在這種使用中,'any'比'sum'更清晰。 – mtrw 2010-10-07 01:26:31