Come convertire la matrice numpy reale in array int numpy? Ho provato ad usare la mappa direttamente sull'array ma non ha funzionato.Come convertire l'array numpy float 2D in array int numpy 2D?
risposta
Utilizzare il metodo 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]])
Alcune funzioni NumPy per come controllare l'arrotondamento: rint, floor, trunc, ceil. a seconda di come si desidera arrotondare i galleggianti, su, giù o verso l'int più vicino.
>>> 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.]])
Per fare uno di questo a int, o uno degli altri tipi di NumPy, astype (come risposta da BrenBern):
a.astype(int)
array([[1, 2],
[1, 3]])
>>> y.astype(int)
array([[1, 2],
[1, 2]])
Esattamente quello che stavo cercando. 'astype' è spesso troppo generico e penso che sia probabilmente più utile quando si effettuano conversioni intere. Quando voglio fare float - int conversion essere in grado di scegliere il tipo di arrotondamento è una bella funzionalità. – Bakuriu
Quindi il modo più semplice per convertire in modo sicuro quasi-int come '7.99999' a ints come' 8', è 'np.rint (arr) .astype (int)'? – endolith
in qualche modo in numpy per renderlo uint8? – Ryan
è possibile utilizzare 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]])
Se non si è sicuri che l'input sarà un array Numpy, è possibile utilizzare asarray
con dtype=int
anziché astype
:
>>> np.asarray([1,2,3,4], dtype=int)
array([1, 2, 3, 4])
Se l'array di input ha già la DTYPE corretta, asarray
evita la copia matrice mentre astype
non (se non si specifica 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. Rotazione numpy array 2D
- 2. Numpy rebinning a array 2D
- 3. NumPy 3D-immagine array 2D
- 4. in Numpy, come chiudere due array 2D?
- 5. come convertire la lista 2d in array 2p numpy?
- 6. Come assegnare un array numpy 1D all'array numpy 2D?
- 7. Conversione di un array numpy 2D in un array strutturato
- 8. Compensazione di un array numpy 2D
- 9. Diagonale superiore di un array numpy 2D
- 10. Crea array 2D Numpy dalle coordinate
- 11. Numpy 2D array Sottrazione per riga
- 12. Intersezione di 2D numpy ndarrays
- 13. 3d matrice Numpy a 2d
- 14. come leggere l'array 2D numpy dalla stringa?
- 15. numpy con python: convertire l'array 3d in 2d
- 16. Numpy: ottieni array 1D come array 2D senza rimodellare
- 17. Convertire la matrice numpy 2d nell'elenco delle liste
- 18. Converti un array di numpy 2D in C++ short **?
- 19. Unione di due array di numpy 2D in un singolo array 2D di 2 tuple
- 20. intesa strano comportamento indicizzazione 2d-array booleano in NumPy
- 21. Identificare le regioni contigue nell'array numpy 2D
- 22. calcola rapidamente la matrice numpy 3D casuale dall'array numpy 2D
- 23. Slice array 2d in array 2d più piccoli
- 24. Numpy concatena gli array 2D con l'array 1D
- 25. Il bincount numpy può funzionare con array 2D?
- 26. Numpy - slicing 2d row o column vector from array
- 27. Come convertire un array numpy da 'float64' a 'float'
- 28. ordina punti di calibrazione 2d con numpy
- 29. Come trovare le dimensioni dei cluster in serie numpy 2D?
- 30. Array 2D in Kotlin
Basta assicurarsi che non si dispone di 'np. inf'or 'np.nan' nel tuo array, poiché hanno risultati sorprendenti. Ad esempio, 'np.array ([np.inf]). Astype (int)' output 'array ([- 9223372036854775808])'. – Garrett