今天在进行numpy运算的时候碰上了一个数据类型转换的坑,记录一下。
问题:假设n1是uint8类型的,n2是float64类型的,请问n1 = n1 + n2得到的n1是什么类型呢?n1[1:5] = n1[1:5] + n2[1:5](数组的大小不止6个,取部分运算)得到的n1的数据类型呢?
答:n1 = n1 + n2将会得到一个float64的数组;而n1[1:5] = n1[1:5] + n2[1:5]依旧是一个uint8的数组。如果n1[1:5]中有负数如-4,则会被转换为252,我就是在这翻车的!
- 一个uint8类型的numpy数组与一个float64类型的做加减运算,得到的结果是float64类型的。
- 一个uint8类型的numpy数组切片与一个float64类型的做加减运算,得到的结果是uint8类型的。
本文分享了在使用numpy时,uint8和float64类型相加的意外结果以及切片操作的不同行为。理解类型转换对于避免错误至关重要。
1056

被折叠的 条评论
为什么被折叠?



