我有一个可能如下所示的数组:
ANOVAInputMatrixValuesArray = [[ 0.96488889, 0.73641667, 0.67521429, 0.592875,
0.53172222], [ 0.78008333, 0.5938125, 0.481, 0.39883333, 0.]]
Run Code Online (Sandbox Code Playgroud)
请注意,其中一行在结尾处的值为零.我想删除任何包含零的行,同时保留所有单元格中包含非零值的行.
但是每次填充数组时,数组都会有不同的行数,每次都会将零位于不同的行中.
我使用以下代码行获取每行中非零元素的数量:
NumNonzeroElementsInRows = (ANOVAInputMatrixValuesArray != 0).sum(1)
Run Code Online (Sandbox Code Playgroud)
对于上面的数组,NumNonzeroElementsInRows包含:[5 4]
五表示行0中的所有可能值都是非零,而四表示行1中的一个可能值为零.
因此,我试图使用以下代码行来查找和删除包含零值的行.
for q in range(len(NumNonzeroElementsInRows)):
if NumNonzeroElementsInRows[q] < NumNonzeroElementsInRows.max():
p.delete(ANOVAInputMatrixValuesArray, q, axis=0)
Run Code Online (Sandbox Code Playgroud)
但由于某种原因,这段代码似乎没有做任何事情,即使执行大量打印命令表明所有变量似乎都正确填充导致代码.
必须有一些简单的方法来简单地"删除任何包含零值的行".
任何人都可以告诉我要写什么代码来完成这个?