2016-09-13 2 views
2

Мне нужно рассчитать среднее значение, которое находится между двумя индексами. Допустим, что мои индексы составляют 3 и 10, и я хотел бы суммировать все значения между ними и делить на количество значений.Numpy: вычисление среднего значения между двумя индексами

Самый простой способ - просто использовать цикл for, начиная с 3, до 10, суммируя их и деля. Это кажется действительно непитонистским способом и, учитывая функциональность предложений Numpy, я подумал, что, возможно, есть более короткий способ использования некоторой магии Numpy. Любое предложение гораздо appriciated

+0

Используйте срез: A = (массив), то 'sl_a = A [3:10]' 'то ау = sl_a.sum()/len (sl_a) 'или использовать' np.mean (A [2:10]) ' – dawg

ответ

2

Чтобы получить доступ ко всем элементам между двумя индексами i и j вы можете использовать нарезку:

slice_of_array = array[i: j+1] # use j if you DO NOT want index j included 

и среднее значение рассчитывается с np.average, но в вашем случае, если вы хотите, чтобы вес с номером элементов, так что вы можете просто использовать np.mean:

import numpy as np 
mean_of_slice = np.mean(slice_of_array) 

или все на одном дыхании (используя индексы):

i = 3 
j = 10 
np.mean(array[i: j+1]) 
1
import numpy as np 

np.mean(yourarray[3:11]) 

Принято считать ваше имя массива "yourarray"

Смежные вопросы