我有一个大小为N *M的矩阵,我想找到每一行的平均值。值是从1到5,并且没有任何值的条目设置为0。但是,当我想使用以下方法查找均值时,它给了我错误的均值,因为它还计算了具有值的条目0。
matrix_row_mean= matrix.mean(axis=1)
如何获得仅非零值的均值?
获取每一行的非零计数,并将其用于平均每一行的总和。因此,实现看起来像这样-
np.true_divide(matrix.sum(1),(matrix!=0).sum(1))
如果您使用的是较旧版本的NumPy,则可以使用count的float转换来替换np.true_divide
,例如,
matrix.sum(1)/(matrix!=0).sum(1).astype(float)
样品运行-
In [160]: matrix
Out[160]:
array([[0, 0, 1, 0, 2],
[1, 0, 0, 2, 0],
[0, 1, 1, 0, 0],
[0, 2, 2, 2, 2]])
In [161]: np.true_divide(matrix.sum(1),(matrix!=0).sum(1))
Out[161]: array([ 1.5, 1.5, 1. , 2. ])
解决该问题的另一种方法是用替换零,NaNs
然后使用np.nanmean
,这将忽略那些零NaNs
并实际上是那些原始零zeros
,就像这样-
np.nanmean(np.where(matrix!=0,matrix,np.nan),1)
从性能的角度来看,我建议第一种方法。
我有3个非常大的有符号整数。 我想计算它们的截断平均值。预期平均值是,即。 不可能计算为: 注:我读了所有关于2个数字的平均值的问题,但我不知道该技术如何应用于3个数字的平均值。 使用BigInteger将非常容易,但假设我不能使用它。 如果我转换为双精度,那么,当然,我会失去精度: 如果我转换为,它可以工作,但也让我们假设我不能使用它。 问题:有没有一种方法可以仅使用长类型来计算3个非常大整数的
我需要写一个程序来计算用户输入的整数的奇偶平均数。用户键入“完成”以完成。输出将显示奇数的平均值和偶数的平均值。 我有一个while循环程序,可以计算数字的和,我正试图增加奇数和偶数和的额外要求。这是代码: 下面是我修改的代码,对奇数和偶数进行排序,然后对每组进行平均。 预期: 实际:
本文向大家介绍python求numpy中array按列非零元素的平均值案例,包括了python求numpy中array按列非零元素的平均值案例的使用技巧和注意事项,需要的朋友参考一下 输入:numpy的array 输出:一个一维的平均值array 如果要求按行的非零元素的平均值,把所有的 axis=1改成axis=0 补充知识:python dataframe 统计行列中零值的个数 1、按行统计,
希望这对你来说是有意义的,我很乐意更详细地解释这个问题。
你有一个整数数组。您必须找到子阵列的数量,该数量意味着(这些元素的总和除以这些元素的计数)舍入为零。我已经用O(n^2)时间解决了这个问题,但效率不够。有办法吗?
问题内容: 我无法获得熊猫列的平均值或均值。有一个数据框。我在下面尝试的任何事情都没有给我该列的平均值 以下返回几个值,而不是一个: 这样: 问题答案: 如果您只想要列的均值,请选择列(这是一个系列),然后调用: