2024-03-29 08:34:51 发布
网友
我有一个浮点数32矩阵V,然后我用一个整型标量值除法:
V = V/num
其中num是一个整数。结果有点令人惊讶,V被转换成a数字浮点数64矩阵。在
有人能帮我理解为什么会这样吗?在
谢谢!在
{根据},浮点数32无法无损保存int32。当操作使用int32时,numpy将结果值提升为float64。另外,根据@Eric的说法,实际的int类型可能会在不同的环境中发生变化,因此预测试是一个很好的实践,可以避免一些潜在的意外。在
建议进一步阅读之前类似的问题:Numpy casting float32 to float64 。Numpy对纯标量操作和涉及数组的操作有不同的处理方式。在本例中,除法操作涉及一个ndarray,因此当num小于65536但大于t255时,numpy将其转换为int16。Numpy确定int16可以无损地转换为float32,而int32不能。这可以通过np.can_cast(np.int16, np.float32)给出{}而{}给出{}来表示。在
num
np.can_cast(np.int16, np.float32)
谢谢你在这个问题下的有见地的评论。这个答案是对这些评论的简短总结。在
{根据},浮点数32无法无损保存int32。当操作使用int32时,numpy将结果值提升为float64。另外,根据@Eric的说法,实际的int类型可能会在不同的环境中发生变化,因此预测试是一个很好的实践,可以避免一些潜在的意外。在
建议进一步阅读之前类似的问题:Numpy casting float32 to float64 。Numpy对纯标量操作和涉及数组的操作有不同的处理方式。在本例中,除法操作涉及一个ndarray,因此当}而{}给出{}来表示。在
num
小于65536但大于t255时,numpy将其转换为int16。Numpy确定int16可以无损地转换为float32,而int32不能。这可以通过np.can_cast(np.int16, np.float32)
给出{谢谢你在这个问题下的有见地的评论。这个答案是对这些评论的简短总结。在
相关问题 更多 >
编程相关推荐