输入:numpy的array

输出:一个一维的平均值array

import numpy as np
 
def non_zero_mean(np_arr):
 exist = (np_arr != 0)
 num = np_arr.sum(axis=1)
 den = exist.sum(axis=1)
 return num/den

如果要求按行的非零元素的平均值,把所有的 axis=1改成axis=0

补充知识:python dataframe 统计行列中零值的个数

1、按行统计,返回为一个series:

(df == 0).astype(int).sum(axis=1)