我有一个可能看起来像这样的数组:
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]
5 表示第 0 行中的所有可能值都非零,而 4 表示第 1 行中的可能值之一为零。
因此,我尝试使用以下代码行来查找和删除包含零值的行。
for q in range(len(NumNonzeroElementsInRows)):
if NumNonzeroElementsInRows[q] < NumNonzeroElementsInRows.max():
p.delete(ANOVAInputMatrixValuesArray, q, axis=0)
但是由于某种原因,这段代码似乎没有做任何事情,即使执行大量打印命令表明所有变量似乎都正确填充到代码中。
必须有一些简单的方法来简单地“删除任何包含零值的行”。
谁能告诉我要写什么代码来完成这个?