Cómo convertir una matriz numpy real a una matriz int numpy? Intenté usar el mapa directamente en la matriz pero no funcionó.Cómo convertir la matriz numpy flotante 2D a 2D int numpy array?
Respuesta
Utilice el método 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]])
Algunas funciones numpy de cómo controlar el redondeo: rint, floor, trunc, ceil. dependiendo de cómo desee rodear los flotadores, arriba, abajo o al int más cercano.
>>> 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.]])
Para hacer uno de esto en a int, o uno de los otros tipos de numpy, astype (como respondidas por BrenBern):
a.astype(int)
array([[1, 2],
[1, 3]])
>>> y.astype(int)
array([[1, 2],
[1, 2]])
Exactamente lo que estaba buscando. 'astype' a menudo es demasiado genérico, y creo que probablemente sea más útil al hacer conversiones de intx - inty. Cuando quiero hacer float, la conversión int puede elegir el tipo de redondeo y es una buena característica. – Bakuriu
Entonces, la forma más sencilla de convertir de manera segura casi-ints como '7.99999' a tintas como' 8', es 'np.rint (arr) .astype (int)'? – endolith
de cualquier manera en numpy para hacerlo uint8? – Ryan
puede utilizar 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]])
Si no está seguro de que su entrada va a ser una matriz Numpy, puede usar asarray
con dtype=int
en lugar de astype
:
>>> np.asarray([1,2,3,4], dtype=int)
array([1, 2, 3, 4])
Si la matriz de entrada ya tiene el dtype correcta, asarray
evita la copia matriz mientras astype
no (a menos que se especifique copy=False
):
>>> a = np.array([1,2,3,4])
>>> a is np.asarray(a) # no copy :)
True
>>> a is a.astype(int) # copy :(
False
>>> a is a.astype(int, copy=False) # no copy :)
True
- 1. cómo convertir 2d list a 2d numpy array?
- 2. Rotar numpy 2D array
- 3. Convertir una matriz 1D en una matriz 2D en numpy
- 4. convertir un diccionario 2d a una matriz numpy
- 5. Convertir una matriz numpy 2D en una matriz estructurada
- 6. Convertir Numpy Array a OpenCV Array
- 7. numpy - 2d indexación de matrices
- 8. matriz Numpy 2D Resta por fila
- 9. Agrupación de matriz numpy 2D en promedio
- 10. Convierta 2d numpy array en la lista de listas
- 11. eficiente gama de construcción Numpy 2D de la matriz 1D
- 12. Intersección de ndarrays 2D numpy
- 13. Contruir matriz 3D en numpy desde la matriz 2d existente
- 14. Identificar regiones contiguas en la matriz numpy 2D
- 15. serie de división 2D de matriz 3D en numpy
- 16. Convertir Hash Map a 2D Array
- 17. Convertir numpy array en tupla
- 18. Cómo truncar los valores de una matriz numpy 2D
- 19. Funciones de mapeo de matrices numpy 2D
- 20. Unir dos matrices numpy 2D en una única matriz 2D de 2 tuplas
- 21. python/numpy: cómo obtener la longitud de la columna 2D array?
- 22. numpy array of objects
- 23. Convierta una lista de matrices numpy 2D en una matriz numpy 3D?
- 24. Cómo convertir matriz Numpy a imagen PIL aplicando matplotlib colormap
- 25. cómo convertir una imagen RGB a numpy array?
- 26. Ordenar un conjunto numpy 2D por varios ejes
- 27. numpy array of chars to string
- 28. enmascarar un array numpy 2D basado en los valores en una columna
- 29. Numpy matrix to array
- 30. Numpy Array a base64 y de vuelta a Numpy Array - Python
Sólo asegúrese de que no tiene 'np. inf'or 'np.nan' en su matriz, ya que tienen resultados sorprendentes. Por ejemplo, 'np.array ([np.inf]). Astype (int)' salidas 'array ([- 9223372036854775808])'. – Garrett