Ho un array Numpy 2-D in cui una colonna ha valori booleani, ad esempio True
/False
. Voglio convertirlo in numero intero 1
e 0
rispettivamente, come posso farlo?Come convertire da un array booleano a un array int in python
E.g. il mio data[0::,2]
è booleano, ho provato
data[0::,2]=int(data[0::,2])
, ma mi sta dando errore:
TypeError: only length-1 arrays can be converted to Python scalars
mie prime 5 file di serie sono:
[['0', '3', 'True', '22', '1', '0', '7.25', '0'],
['1', '1', 'False', '38', '1', '0', '71.2833', '1'],
['1', '3', 'False', '26', '0', '0', '7.925', '0'],
['1', '1', 'False', '35', '1', '0', '53.1', '0'],
['0', '3', 'True', '35', '0', '0', '8.05', '0']]
Questo non può essere un array 2D, poiché nella matrice 2D tutti gli elementi hanno lo stesso tipo. Probabilmente hai una matrice strutturata. Potresti, per favore, mostrare qualche riga completa da essa e il suo 'dtype'? – kirelagin
OK, quelle citazioni dovrebbero suggerirti che hai una serie di stringhe. Quindi, ancora una volta, in numpy tutti gli elementi di un array 2D devono avere lo stesso tipo. O hai bisogno di [array strutturati] (http://docs.scipy.org/doc/numpy/user/basics.rec.html) o semplicemente di liberarti di Numpy e di usare liste ordinarie di Python. Perché hai bisogno di numpy e qual è il tuo obiettivo finale? – kirelagin
Attualmente sto seguendo un tutorial sul progetto di machine learning che usa python, e siccome sono nuovo in Python sono di fronte a questa difficoltà, richiede array numpy. Quindi sarebbe fantastico se tu potessi dirmi come convertire l'intera serie di stringhe in modo che fluttuino, poiché è chiaro che può essere convertito in float (il trattamento vero come 1 e fase come 0). –