我是一位有用的助手,能够翻译文本。
我的问题是,如何高效地获取验证数据列相对于训练数据列的类似百分位排名集合?也就是说,对于验证数据列中的每个值,我如何找到它在训练数据列中所有值中的百分位排名?我已经尝试过这样做:
我有两列数据表示相同的数量; 一列来自我的训练数据,另一列来自我的验证数据。
我知道如何使用以下方法有效地计算训练数据的百分位数排名:
pandas.DataFrame(training_data).rank(pct = True).values
我的问题是,如何高效地获取验证数据列相对于训练数据列的类似百分位排名集合?也就是说,对于验证数据列中的每个值,我如何找到它在训练数据列中所有值中的百分位排名?我已经尝试过这样做:
def percentrank(input_data,comparison_data):
rescaled_data = np.zeros(input_data.size)
for idx,datum in enumerate(input_data):
rescaled_data[idx] =scipy.stats.percentileofscore(comparison_data,datum)
return rescaled_data/100
但我不确定这是否正确,而且它非常缓慢,因为它对于for循环中的每个值都执行了大量冗余计算。
任何帮助将不胜感激!