如何在python中使指标功能更快或更智能?

时间:2018-04-18 14:27:10

标签: python indicator

我试图在python中复制ML文件。我唯一需要的是做得更好的指标功能是什么:给定一个集合F,其中有福利吗?结果应为1或0.我正在使用矩阵700个样本x 8个特征。我想检查一个功能是否在集合F.这是我的代码。它工作,但非常缓慢。 设X为完整矩阵,X [:,i] =壮举。 F可以是空集或包含X

的特征
def I (feat,F):

  respuesta=[]
  for i in F:
         respuesta.append(np.all(i==feat))

  if np.any(respuesta)==True:

         result=1
  elif np.any(respuesta)==False:
         result=0
  else:
         raise ValueError('something hapens')

  return(result)

1 个答案:

答案 0 :(得分:0)

第一个明显的优化是避免两次调用np.any(respuesta) ......这个:

if np.any(respuesta)==True:
   result=1
elif np.any(respuesta)==False:
   result=0
return result

可以替换为

return np.any(respuesta)

但即使这样,这也需要构建整个respuesta列表,因为一个有效的结果就足够了。所以你可以在第一个有效结果上返回True:

def I (feat,F):
  for i in F:
     if np.all(i==feat):
         return True
  return False

可能有更好的解决方案,但如果不知道Fifeat到底是什么,就很难说清楚。