【发布时间】:2012-01-01 06:22:07
【问题描述】:
我是 Python 的新手,正在尝试不同的方法来优化和简化我的代码。
我有一个数组列表(必须是这种格式)最初是空的,我需要用数组更新它,确保不添加重复的条目。
现在我正在按照以下方式进行操作,这是我尝试过的唯一有效的方法:
if len(where(((array(self.pop_next)-(self.pop[self.top_indv_indx[i]]))==0).sum(1)==len((self.pop[self.top_indv_indx[i]])))[0])<=0):
self.pop_next.append(self.pop[self.top_indv_indx[i]])
self.pop_next 是我的数组列表,self.pop[self.top_indv_indx[i]] 是要添加的数组。
我知道这个 Unpythonic 并且猜想有更好的简单方法来做同样的事情。 请帮忙
【问题讨论】:
-
什么是
where?你在使用numpy数组吗?如果你能把代码分成几行也很好 -
是的,我正在使用 numpy 数组。现在我正在隐式尝试使用 where 关键字匹配数组。
-
如果您尝试拥有一个包含不同对象的容器,也许您应该使用
set和您自己的__cmp__操作?你的项目是做什么的? -
我的项目与外部模拟器接口,因此我需要我的数据采用数组形式。我尝试过设置,但不知何故它不能直接工作,除非随后进行展平(这给了我一组数字而不是我需要的向量)
标签: python optimization numpy arraylist unique