【问题标题】:Calculating mean or median in one function in numpy在numpy中计算一个函数的平均值或中位数
【发布时间】:2016-10-07 18:48:34
【问题描述】:

我有一个函数应该根据用户输入计算 numpy.array 的平均值或中值。我是这样写的

 import numpy as np
 ...
 if input=='means':
      return np.mean(matrix, axis=1)
 if input=='median':
     return np.median(matrix, axis=1)

但这似乎有点麻烦。我想可能有一个标准的 numpy 函数将数组和操作作为输入。我在想类似于 R 的 tapply(X, Y, FUNCTION=Z) 的东西,其中 Z 可以是任何类型的函数。但我在docs 或 Google 上找不到任何东西...

  • 在 Numpy 中有类似的东西吗?
  • 如果没有具体的功能,谁能想到一个不错的方法 这样做?

谢谢!

【问题讨论】:

    标签: python arrays numpy mean


    【解决方案1】:

    如果您的输入字符串是mean 而不是means,您可以这样做:

    return getattr(np, input)(matrix, axis=1)
    

    在这里,getattr 调用从 numpy 库中获取您想要的函数。然后第二组括号调用该函数。

    【讨论】:

    • 很好,我不知道getattr,谢谢!您将轴从 1 更改为 -1 是否有原因?
    • 那是一个错字。我修好了。
    【解决方案2】:

    我认为您不需要特定于 NumPy 的东西。

    例如:

    def myFunc(matrix, func, axis=1):
        return func(matrix)
    

    然后,使用函数:

    import numpy as np
    
    #Create random matrix (10, 10)
    mat = np.random.randint(100, size=(10, 10))
    print myFunc(mat, np.mean)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-26
      • 2020-12-09
      • 1970-01-01
      • 2021-02-14
      • 1970-01-01
      相关资源
      最近更新 更多