广播期间的 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)
结果如你所愿
我正在使用 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)
结果如你所愿