Commit 2475ae92 authored by Dr.李's avatar Dr.李

enhance even more

parent 3efcc7b2
*.pyc *.pyc
\ No newline at end of file .idea/*
\ No newline at end of file
...@@ -6,20 +6,16 @@ Created on 2017-4-25 ...@@ -6,20 +6,16 @@ Created on 2017-4-25
""" """
import numpy as np import numpy as np
import pandas as pd import numpy_groupies as npg
def standardize(x: np.ndarray, groups: np.ndarray=None) -> np.ndarray: def standardize(x: np.ndarray, groups: np.ndarray=None) -> np.ndarray:
if groups is not None: if groups is not None:
df = pd.DataFrame(x) mean_values = npg.aggregate_np(groups, x, axis=0, func='mean')
gs = df.groupby(groups) std_values = npg.aggregate_np(groups, x, axis=0, func='std', ddof=1)
mean_values = gs.mean() value_index = np.searchsorted(range(len(mean_values)), groups)
std_values = gs.std().values
value_index = np.searchsorted(mean_values.index, groups)
mean_values = mean_values.values
mean_values = mean_values[value_index] mean_values = mean_values[value_index]
std_values = std_values[value_index] std_values = std_values[value_index]
......
...@@ -5,21 +5,17 @@ Created on 2017-4-25 ...@@ -5,21 +5,17 @@ Created on 2017-4-25
@author: cheng.li @author: cheng.li
""" """
import pandas as pd
import numpy as np import numpy as np
import numpy_groupies as npg
def winsorize_normal(x: np.ndarray, num_stds: int=3, groups: np.ndarray=None) -> np.ndarray: def winsorize_normal(x: np.ndarray, num_stds: int=3, groups: np.ndarray=None) -> np.ndarray:
if groups is not None: if groups is not None:
df = pd.DataFrame(x) mean_values = npg.aggregate_np(groups, x, axis=0, func='mean')
gs = df.groupby(groups) std_values = npg.aggregate_np(groups, x, axis=0, func='std', ddof=1)
mean_values = gs.mean() value_index = np.searchsorted(range(len(mean_values)), groups)
std_values = gs.std().values
value_index = np.searchsorted(mean_values.index, groups)
mean_values = mean_values.values
ubound = mean_values + num_stds * std_values ubound = mean_values + num_stds * std_values
lbound = mean_values - num_stds * std_values lbound = mean_values - num_stds * std_values
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment