删除行我有一个数组看起来像这样的:在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