如何将2D浮点numpy数组转换为2D int numpy数组?

如何将真正的numpy数组转换为int numpy数组? 试图直接使用地图到数组,但它没有奏效。


使用astype方法。

>>> x = np.array([[1.0, 2.3], [1.3, 2.9]])
>>> x
array([[ 1. ,  2.3],
       [ 1.3,  2.9]])
>>> x.astype(int)
array([[1, 2],
       [1, 2]])

关于如何控制舍入的一些numpy函数:rint,floor,trunc,ceil。 取决于你希望如何绕浮点,向上,向下或到最近的整数。

>>> x = np.array([[1.0,2.3],[1.3,2.9]])
>>> x
array([[ 1. ,  2.3],
       [ 1.3,  2.9]])
>>> y = np.trunc(x)
>>> y
array([[ 1.,  2.],
       [ 1.,  2.]])
>>> z = np.ceil(x)
>>> z
array([[ 1.,  3.],
       [ 2.,  3.]])
>>> t = np.floor(x)
>>> t
array([[ 1.,  2.],
       [ 1.,  2.]])
>>> a = np.rint(x)
>>> a
array([[ 1.,  2.],
       [ 1.,  3.]])

为了使其中一个int或numpy中的其他类型之一,astype(由BrenBern回答):

a.astype(int)
array([[1, 2],
       [1, 3]])

>>> y.astype(int)
array([[1, 2],
       [1, 2]])

你可以使用np.int_

>>> x = np.array([[1.0, 2.3], [1.3, 2.9]])
>>> x
array([[ 1. ,  2.3],
       [ 1.3,  2.9]])
>>> np.int_(x)
array([[1, 2],
       [1, 2]])
链接地址: http://www.djcxy.com/p/50987.html

上一篇: How to convert 2D float numpy array to 2D int numpy array?

下一篇: How to get indices of N maximum values in a numpy array?