Contando elementos diferentes de zero em cada linha e dentro de cada coluna de uma matriz NumPy 2D

eu tenho umNumPy matriz que contém principalmente valores diferentes de zero, mas ocasionalmente conterá um valor zero. Eu preciso ser capaz de:

Conte os valores diferentes de zero em cada linha e coloque essa contagem em uma variável que eu possa usar em operações subseqüentes, talvez repetindo os índices de linha e executando os cálculos durante o processo iterativo.

Conte os valores diferentes de zero em cada coluna e coloque essa contagem em uma variável que eu possa usar em operações subseqüentes, talvez repetindo os índices da coluna e executando os cálculos durante o processo iterativo.

Por exemplo, uma coisa que preciso fazer é somar cada linha e depois dividir cada soma de linha pelo número de valores diferentes de zero em cada linha, relatando um resultado separado para cada índice de linha. E então eu preciso somar cada coluna e depois dividir a soma da coluna pelo número de valores diferentes de zero na coluna, também relatando um resultado separado para cada índice da coluna. Também preciso fazer outras coisas, mas elas devem ser fáceis depois que eu descobrir como fazer as coisas que estou listando aqui.

O código com o qual estou trabalhando está abaixo. Você pode ver que estou criando uma matriz de zeros e preenchendo-a de umcsv Arquivo. Algumas das linhas conterão valores para todas as colunas, mas outras ainda terão alguns zeros em algumas das últimas colunas, criando o problema descrito acima.

As últimas cinco linhas do código abaixo são de outra postagem neste fórum. Essas últimas cinco linhas de código retornam uma lista impressa de índices de linha / coluna para os zeros. No entanto, não sei como usar essas informações resultantes para criar as contagens de linhas diferentes de zero e as contagens de colunas diferentes de zero descritas acima.

ANOVAInputMatrixValuesArray=zeros([len(TestIDs),9],float)
j=0
for j in range(0,len(TestIDs)):
    TestID=str(TestIDs[j])
    ReadOrWrite='Read'
    fileName=inputFileName
    directory=GetCurrentDirectory(arguments that return correct directory)
    inputfile=open(directory,'r')
    reader=csv.reader(inputfile)
    m=0
    for row in reader:
        if m<9:
            if row[0]!='TestID':
                ANOVAInputMatrixValuesArray[(j-1),m]=row[2]
                m+=1
    inputfile.close()

IndicesOfZeros = indices(ANOVAInputMatrixValuesArray.shape) 
locs = IndicesOfZeros[:,ANOVAInputMatrixValuesArray == 0]
pts = hsplit(locs, len(locs[0]))
for pt in pts:
    print(', '.join(str(p[0]) for p in pt))

Alguém pode me ajudar com isso?

questionAnswers(4)

yourAnswerToTheQuestion