首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在python中使指示器的功能更快或更智能?

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

Stack Overflow用户
提问于 2018-04-18 22:27:10
回答 1查看 728关注 0票数 0

我正在尝试用python复制ML论文。我唯一需要做的就是把指标函数做得更好:给定一个集合F,特征fi在其中吗?结果应为1或0。我正在处理一个700个样本x 8个特征的矩阵。我想检查一个特征是否在F集中。这是我的代码。它是有效的,但速度非常慢。设X是全矩阵,X:,i=feat。F可以是空集或包含X的要素

代码语言:javascript
复制
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)
EN

回答 1

Stack Overflow用户

发布于 2018-04-18 23:37:37

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

代码语言:javascript
复制
if np.any(respuesta)==True:
   result=1
elif np.any(respuesta)==False:
   result=0
return result

可以替换为

代码语言:javascript
复制
return np.any(respuesta)

但即便如此,这也需要无缘无故地构建整个respuesta列表,因为一个有效结果就足够了。所以你可以只对第一个有效的结果返回True:

代码语言:javascript
复制
def I (feat,F):
  for i in F:
     if np.all(i==feat):
         return True
  return False

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49902301

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档