无法减去结构化numpy数组中的特定字段

2024-04-25 13:54:58 发布

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

尝试对结构化numpy数组中的字段进行减法时,出现以下错误:

In [8]: print serPos['pos'] - hisPos['pos']
--------------------------------------------------------------------------- 
TypeError                                 
Traceback (most recent call last) <ipython-input-8-8a22559cfb2d> in <module>()
----> 1 print serPos['pos'] - hisPos['pos']

TypeError: ufunc 'subtract' did not contain a loop with signature matching types 
dtype([('x', '<f8'), ('y', '<f8'), ('z', '<f8')]) 
dtype([('x', '<f8'), ('y', '<f8'), ('z', '<f8')]) 
dtype([('x', '<f8'), ('y', '<f8'), ('z', '<f8')])

既然是标准的float数据类型,为什么我不能执行这个减法呢?在

为了重现这些条件,提供了以下示例代码:

^{pr2}$

如有任何建议,我们将不胜感激!在


Tags: inposnumpymost错误数组结构化print
1条回答
网友
1楼 · 发布于 2024-04-25 13:54:58

serPos['pos']dtype是复合物

dtype([('x', '<f8'), ('y', '<f8'), ('z', '<f8')])

尚未为复合数据类型定义减法(和其他类似的操作)。它也不适用于raw数据类型。在

你可以减去各个字段

^{pr2}$

我想我们也可以viewserPos['pos']作为一个2d数组(3列),然后减去这个形式。但我需要测试一下语法。在

serPos['pos'].view((float,(3,)))

应生成(N,3)2d数组。在

相关问题 更多 >