2017-01-24 3 views
1

Я попытался вычислить среднее значение y из разных массивов, таких как np.mean(,axis=1), но с различными значениями x.вычислить среднее значение y с разными значениями x

Для получения x и y массивов, я использовал код, как показано ниже:

x1=np.arange(10) 
x2 = np.arange(10)+1 
x3 = np.arange(10)+2 
x4 = np.arange(10)+3 
y1 = x1+1 
y2 = x2+2 
y3 = x3+3 
y4 = x4 +4 

Код производит:

x1 = [0 1 2 3 4 5 6 7 8 9] 
x2 = [ 1 2 3 4 5 6 7 8 9 10] 
x3 = [ 2 3 4 5 6 7 8 9 10 11] 
x4 = [ 3 4 5 6 7 8 9 10 11 12] 
y1 = [ 1 2 3 4 5 6 7 8 9 10] 
y2 = [ 3 4 5 6 7 8 9 10 11 12] 
y3 = [ 5 6 7 8 9 10 11 12 13 14] 
y4 = [ 7 8 9 10 11 12 13 14 15 16] 

Если я участок (x1, y1), (х2, у2) , (x3, y3), (x4, y4), значения y распределяются от значений x от 0 до 16, как показано ниже. Некоторое значение x имеет только одно значение y, а другое может иметь несколько значений на графике. Я хотел бы взять среднее значение y при каждом значении x.

enter image description here

+2

Ваше описание делает очень мало смысла. На самом деле, никакого смысла. Возможно, вам нужно переписать свой вопрос. – DyZ

ответ

2
import numpy_indexed as npi 
x = np.concatenate([x1,x2,x3,x4]) 
y = np.concatenate([y1,y2,y3,y4]) 
x_unique, y_mean = npi.group_by(x).mean(y) 
1

Вот альтернатива pandas решение:

import pandas as pd 
pd.concat([pd.Series(y1,index=x1), 
      pd.Series(y2,index=x2), 
      pd.Series(y3,index=x3), 
      pd.Series(y4,index=x4)], axis=1).mean(axis=1) 
#0  1.0 
#1  2.5 
#2  4.0 
#3  5.5 
#.......... 
Смежные вопросы