如何在python中使指示器的功能更快或更智能?

2024-03-29 00:18:33 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图用python复制ML文件。我唯一需要做的就是把指示器的功能做得更好什么是:给定一组F,其中是否有特征fi?结果应为1或0。我正在使用矩阵700个样本x 8个功能。我想检查功能是否在集合F中。这是我的代码。它很管用,但速度很慢。 设X为全矩阵,X[:,i]=feat。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)

Tags: 文件代码功能npany矩阵特征result
1条回答
网友
1楼 · 发布于 2024-03-29 00:18:33

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

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

可以替换为

^{pr2}$

但即便如此,这也需要构建整个respuesta列表,因为只有一个有效的结果就足够了。因此,您只需在第一个有效结果上返回True:

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

也许有更好的解决方案,但是如果不知道Fi和{}是什么,就很难判断。在

相关问题 更多 >