当前位置: 首页 > 面试题库 >

非零值的整数平均值

魏彦
2023-03-14
问题内容

我有一个大小为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)时间解决了这个问题,但效率不够。有办法吗?

  • 问题内容: 我无法获得熊猫列的平均值或均值。有一个数据框。我在下面尝试的任何事情都没有给我该列的平均值 以下返回几个值,而不是一个: 这样: 问题答案: 如果您只想要列的均值,请选择列(这是一个系列),然后调用: