小编Med*_*ath的帖子

删除numpy数组中的行

我有一个可能如下所示的数组:

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)

但由于某种原因,这段代码似乎没有做任何事情,即使执行大量打印命令表明所有变量似乎都正确填充导致代码.

必须有一些简单的方法来简单地"删除任何包含零值的行".

任何人都可以告诉我要写什么代码来完成这个?

python numpy delete-row

81
推荐指数
3
解决办法
21万
查看次数

标签 统计

delete-row ×1

numpy ×1

python ×1