【发布时间】:2016-07-25 17:32:30
【问题描述】:
我的数据类型如下:
pose_dtype = np.dtype([('x', np.float64), ('y', np.float64), ('theta', np.float64)])
现在,我可以写了:
pose = np.array((1, 2, np.pi), dtype=pose_dtype)
我想添加一个xy 字段以使其更易于使用。我可以这样做:
pose_dtype = np.dtype(dict(
names=['x', 'y', 'theta', 'xy'],
formats=[np.float64, np.float64, np.float64, (np.float64, 2)],
offsets=[0, 8, 16, 0]
))
但是,现在我不能再使用以前的方法构造数组了,不得不求助于:
pose = np.array((1, 2, np.pi, [1, 2]), dtype=pose_dtype)
这是危险的重复。
有什么方法可以将属性标记为彼此的别名,这样我就不必处理这个问题了?
【问题讨论】:
-
按字段而不是按记录填充数组怎么样?
dtypeoffsets是关于 SO 的一个相当罕见的话题。我将不得不尝试寻找替代方案。 -
但是你知道
pose[['x','y']]可以访问多个字段吗?没有任何别名。 -
@MSeifert:但是这样做的结果是结构化类型,而不是非结构化类型 - 我不能在结果上使用
np.dot
标签: python numpy structured-array numpy-dtype