我有一个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. ])
如何在此数组的平均值上替换数组中的所有值(整个数组的值相同而不是所有值)?
答案 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]