我有一个可能长这样的数组:
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行中所有可能的值都是非零的,而四表示第1行中可能的一个值是零。
因此,我正在尝试使用以下代码来查找并删除包含零值的行。
for q in range(len(NumNonzeroElementsInRows)):
if NumNonzeroElementsInRows[q] < NumNonzeroElementsInRows.max():
p.delete(ANOVAInputMatrixValuesArray, q, axis=0)
但出于某种原因,尽管许多打印命令表明所有变量在代码之前都被正确地填充,但此代码似乎没有任何作用。
肯定有一种简单的方法可以“删除包含零值的任何行”。
有人能展示给我编写什么代码来实现这个功能吗?
numpy.delete(x, index)
就不起作用。 - Antimony