首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用itemgetter和numpy数组进行过滤

使用itemgetter和numpy数组进行过滤
EN

Stack Overflow用户
提问于 2013-04-29 17:10:52
回答 2查看 615关注 0票数 0

我得到以下错误:

代码语言:javascript
复制
Traceback (most recent call last):
  File "calibrating.py", line 160, in <module>
    intrinsic = calibrate2(corners, cb_points, (640,480))
  File "calibrating.py", line 100, in calibrate2
    valid_corners = filter(itemgetter(0), image_corners)
ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()

image_corners是numpy数组的列表,即,

代码语言:javascript
复制
[array([[ 261.45239258,  140.88212585],
   [ 301.11242676,  156.306427  ],
   [ 343.38937378,  168.20132446],
   [ 382.79559326,  180.48405457],...
   [ 392.16989136,  338.6171875 ],
   [ 439.97772217,  337.2124939 ]], dtype=float32), ... ]

我想要做的是在没有dtype=float32的情况下取矩阵,我做错了什么?

EN

回答 2

Stack Overflow用户

发布于 2013-04-29 17:19:33

itemgetter无法访问dtype属性。

请尝试使用此过滤器:

代码语言:javascript
复制
filter(lambda arr: arr.dtype != float32, image_corners)

这将为您提供没有dtype==float32的所有矩阵。

票数 1
EN

Stack Overflow用户

发布于 2013-04-29 17:26:26

或使用list comprehensions

代码语言:javascript
复制
[a for a in image_corners if a.dtype is not float32]
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16274954

复制
相关文章

相似问题

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