2016-08-21 4 views
0

У меня есть массив в 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. ]) 

Как я могу заменить все значения в массиве на среднем массиве (такое же среднее значение для всего массива, а все от значений)?

+1

Что вы имеете и в чем проблема с вашим кодом и каков ваш ожидаемый результат? – Kasramvd

ответ

-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] 
+1

-1, потому что он не делает то, что вы подразумеваете. Если какое-либо из значений будет ложным (например, 0), они не будут заменены этим значением. –

+0

@ThijsvanDien Да, мое плохое. –

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] 
Смежные вопросы