私は自分のクラスメトリックに取り組んでいます
import numpy as np
class Metric(object):
def __init__(self,*args):
self.min = min(args)
self.max = max(args)
self.median = np.percentile(args,50)
self.avg = sum(args)*1.0/len(args)
self.len = len(args)
self.std = np.std(args)
self.var = np.var(args)
self.IQR = np.percentile(args,75)-np.percentile(args,25)
self.relief_ratio = (self.avg-self.min)*1.0/(self.max-self.min)
を使用せずに尖度を計算する関数をネストしたいと考えていfrom scipy.stats import kurtosis
ます。この例に従うと、尖度の式は次のようになります。
def avg(obs):
return (1. / len(obs)) * np.sum(obs)
def variance(obs):
return (1. / len(obs)) * np.sum((obs - avg(obs)) ** 2)
def kurt(obs):
num = np.sum((obs - avg(obs)) ** 4)/ len(obs)
denom = variance(obs) ** 2 # avoid losing precision with np.sqrt call
return num / denom
私の質問は次のとおりです。
- 正しい python スタイルはどれですか?
avg
、variance
、およびkurt
クラスの外側または内側に書き込む必要がありますか? - 内側の場合、どのスタイルが最適ですか?