【发布时间】:2022-01-01 20:16:15
【问题描述】:
考虑以下 numpy 代码
foo = np.array([255, 255], dtype=np.uint8)
foo_sum = foo.sum()
foo_square_v1 = foo**2
foo_square_v2 = np.square(foo)
foo_square_v3 = np.pow(foo, 2)
foo_sum 正确转换为 uint64 并返回 510
但是所有 3 个foo_square 都没有触发类型转换并且有溢出(!!!),返回[1,1]
知道我应该手动进行投射还是 numpy 是否自动为我进行投射的经验法则是什么?
我的系统: Python 3.x、X64 机器、Linux、numpy 1.20.3
【问题讨论】: