广播期间的 numpy 类型转换

numpy type conversion during broadcast

我正在使用 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'

是否有可能以某种方式阻止这种转换行为?

这是因为当你

y = np.array(['test', 10])

结果是

array(['test', '10'], 
  dtype='<U4')

如果你这样做 y = np.array(['test', 10], dtype=object) 结果如你所愿