Numpy数组意味着

时间:2016-08-21 13:41:28

标签: python arrays numpy

我有一个numpy数组,其值如下:

array([ 22.1,  10.4,   9.3,  18.5,  12.9,   7.2,  11.8,  13.2,   4.8,
        10.6,   8.6,  17.4,   9.2,   9.7,  19. ,  22.4,  12.5,  24.4,
        11.3,  14.6,  18. ,  12.5,   5.6,  15.5,   9.7,  12. ,  15. ])

如何在此数组的平均值上替换数组中的所有值(整个数组的值相同而不是所有值)?

2 个答案:

答案 0 :(得分:1)

你需要这样的东西吗?:

import numpy as np

a = np.array([ 22.1,  10.4,   9.3,  18.5,  12.9,   7.2,  11.8,  13.2,   4.8,
               10.6,   8.6,  17.4,   9.2,   9.7,  19. ,  22.4,  12.5,  24.4,
               11.3,  14.6,  18. ,  12.5,   5.6,  15.5,   9.7,  12. ,  15. ])

a[:] = np.mean(a)
print a

这给出了:

[ 13.26666667  13.26666667  13.26666667  13.26666667  13.26666667
  13.26666667  13.26666667  13.26666667  13.26666667  13.26666667
  13.26666667  13.26666667  13.26666667  13.26666667  13.26666667
  13.26666667  13.26666667  13.26666667  13.26666667  13.26666667
  13.26666667  13.26666667  13.26666667  13.26666667  13.26666667
  13.26666667  13.26666667]

答案 1 :(得分:-1)

如果我正确理解您的问题,您可以使用np.place()

arr = np.array([ 22.1,  10.4,   9.3,  18.5,  12.9,   7.2,  11.8,  13.2,   4.8,
        10.6,   8.6,  17.4,   9.2,   9.7,  19. ,  22.4,  12.5,  24.4,
        11.3,  14.6,  18. ,  12.5,   5.6,  15.5,   9.7,  12. ,  15. ])

np.place(arr, arr, np.mean(arr))

print(arr)
    [ 13.26666667  13.26666667  13.26666667  13.26666667  13.26666667
      13.26666667  13.26666667  13.26666667  13.26666667  13.26666667
      13.26666667  13.26666667  13.26666667  13.26666667  13.26666667
      13.26666667  13.26666667  13.26666667  13.26666667  13.26666667
      13.26666667  13.26666667  13.26666667  13.26666667  13.26666667
      13.26666667  13.26666667]