我使用numpy广播功能在一组坐标上映射一组值。值可以是异构类型,包括基元。我的问题是广播功能在某些条件下转换原始类型。例如,参见此代码:
In [11]: x = np.array([1])
...: y = np.array(['test', 10])
...: list(np.broadcast(x, y))
Out[11]: [(1, 'test'), (1, '10')]
在y值中传递的int 10已经转换为字符串' 10'播出后。
是否有可能以某种方式阻止这种投射行为?
答案 0 :(得分:2)
这是因为当你做
时y = np.array(['test', 10])
结果是
array(['test', '10'],
dtype='<U4')
如果你做y = np.array(['test', 10], dtype=object)
结果将如您所愿。