Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 为什么np.array上的astype(uint)不';是否更改np数组元素的类型?_Python_Python 2.7_Numpy - Fatal编程技术网

Python 为什么np.array上的astype(uint)不';是否更改np数组元素的类型?

Python 为什么np.array上的astype(uint)不';是否更改np数组元素的类型?,python,python-2.7,numpy,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'> >x=np.array([[1.0,2.3],[1.3,2

使用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'>
>x=np.array([[1.0,2.3],[1.3,2.9])
>>>x.aType(uint8)
数组([[1,2],
[1,2]],dtype=uint8)
>>>类型(x[0,0])

为什么元素仍然是float64而不是uint8

astype
返回原始数组的副本


改为使用
x=x.astype(uint8)

astype返回数组的副本,因此必须为其分配:

x = x.astype(uint8)

作为一般规则:如果一个方法返回一些东西,那么它不会修改原始对象。如果它不返回某些内容,那么它会修改原始对象。对于内置对象、标准库和大多数其他库,这几乎总是正确的。在您的示例中,很明显,
astype
返回了一些内容。