【发布时间】:2020-08-20 21:59:47
【问题描述】:
有没有办法加快速度?在非常大的数据集上花费太长时间...... “矩阵”是一个没有固定长度的 numpy 数组列表(有些可能是 1-5 个元素更长或更短)
def replaceScaleBelowZero(arr):
if np.amax(arr)<=0:
arr[arr<=0] = minmax_scale(arr[arr<=0],(min_thresh*0.75,min_thresh))
elif np.min(arr)<=0:
arr[arr<=0] = minmax_scale(arr[arr<=0],(min_thresh*0.75,min_thresh))
return arr
def replaceScaleBelowMinThresh(arr):
if np.amax(arr)<min_thresh:
arr[arr<sl_thresh] = minmax_scale(arr[arr<min_thresh],(min_thresh*0.75,min_thresh))
elif np.min(arr)<min_thresh:
arr[arr<min_thresh] = minmax_scale(arr[arr<min_thresh],(min_thresh*0.75,min_thresh))
return arr
matrice = [replaceScaleBelowZero(slice_ ) for slice_ in matrice ]
matrice = [replaceScaleBelowMinThresh(slice_ ) for slice_ in matrice ]
【问题讨论】:
-
在第一个函数中,您可以删除
if-elif,只留下arr[arr <= 0] = ...。以及minmax_scale()是如何定义的? -
@V.Ayrat minmax_scale() 是 sklearn 的 minmaxscaler“来自 sklearn.preprocessing import minmax_scale”。我尝试了“arr[arr
标签: arrays list performance numpy processing-efficiency