2017-01-24 11 views
1

np.mean(,axis=1)のような異なる配列から、xという異なる値のyの平均を計算しようとしました。異なる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 

コードが生成:

Iは、以下のようにコードを用い、xyアレイを製造するために

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] 

場合Iプロット(X1、Y1)、(X2、Y2) 、(x3、y3)、(x4、y4)、y値は以下のように0から16までのx値から分布する。いくつかのx値はy値を1つしか持たず、その他の値はプロット内に複数の値を持つことがあります。私はそれぞれのx値で平均してy値を取ってみたいと思います。

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 
#.......... 
関連する問題