为什么np.array上的astype(uint)不会改变np.array元素的类型?

时间:2014-01-21 07:11:30

标签: python python-2.7 numpy

使用 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

2 个答案:

答案 0 :(得分:4)

astype返回原始数组的副本。

使用x = x.astype(uint8)代替

答案 1 :(得分:0)

astype 会返回数组的副本,因此您必须指定它:

x = x.astype(uint8)