使用 astype 将np.array转换为uint8时,数组元素的类型不会改变。
>>> x = np.array([[1.0, 2.3], [1.3, 2.9]])
>>> x.astype(uint8)
array([[1, 2],
[1, 2]], dtype=uint8)
>>> type(x[0,0])
<type 'numpy.float64'>
为什么元素仍然是 float64 而不是 uint8 ?
答案 0 :(得分:4)
astype
返回原始数组的副本。
使用x = x.astype(uint8)
代替
答案 1 :(得分:0)
astype 会返回数组的副本,因此您必须指定它:
x = x.astype(uint8)