-
Notifications
You must be signed in to change notification settings - Fork 14
Open
Description
I found the code useful. I rewrote the function using 2D numpy array as input in my use case. I'm posting it here if it's of any help to others or as an addition to your code.
import numpy as np
import pandas as pd
def qnorm_np(arr):
sorted_arr = arr.astype(float)
sorted_arr.sort(axis=0)
rank = sorted_arr.mean(axis=1)
for col in range(arr.shape[1]):
t = np.searchsorted(np.sort(arr[:, col]), arr[:,col])
sorted_arr[:,col] = rank[t]
return sorted_arr
#Test
df_input = pd.DataFrame({'C1': {'A': 5, 'B': 2, 'C': 3, 'D': 4},
'C2': {'A': 4, 'B': 1, 'C': 4, 'D': 2},
'C3': {'A': 3, 'B': 4, 'C': 6, 'D': 8}})
arr_norm = qnorm_np(df_input.values)
- P
Metadata
Metadata
Assignees
Labels
No labels