sklearn.preprocessing.minmax_scale
используйте много проверок. Если вы перепишете свой
arr[arr<=0] = minmax_scale(arr[arr<=0],(min_thresh*0.75,min_thresh))
как
a = arr[arra<=0]
a -= a.min()
a /= a.max()
a *= (0.25 * min_thresh)
a += 0.75 * min_thresh
(при условии, что arr равен 1d), это должно быть быстрее. Если это сработает, я думаю, его можно оптимизировать дальше, переписав это - =, / =, * =, + = всего двумя такими операциями.
Во второй функции вы используете
arr[arr<sl_thresh] = minmax_scale(arr[arr<min_thresh] ...
if sl_thresh != min_thresh
это может привести к ошибкам. Если sl_thresh = min_thresh
, я думаю, вы можете отказаться от предложения if-else
, так как ваш ValueError
, вероятно, был вызван sklearn
.