Jawaban:
Nah, jika Anda membaca data sebagai daftar, lakukan saja np.array(map(float, list_of_strings))(atau gunakan pemahaman daftar). (Dalam Python 3, Anda harus memanggil listnilai yang mapdikembalikan jika Anda menggunakan map, karena mapmengembalikan iterator sekarang.)
Namun, jika itu sudah berupa rangkaian string yang numpy, ada cara yang lebih baik. Gunakan astype().
import numpy as np
x = np.array(['1.1', '2.2', '3.3'])
y = x.astype(np.float)
list. Larik numpy sengaja diketik secara homogen. Jika Anda benar-benar ingin, Anda dapat menggunakan larik objek (misalnya np.array(['apple', 1.2, 1, {'b'=None, 'c'=object()}], dtype=object)). Namun, larik objek tidak memiliki keunggulan yang signifikan dibandingkan menggunakan daftar.
Anda juga bisa menggunakan ini
import numpy as np
x=np.array(['1.1', '2.2', '3.3'])
x=np.asfarray(x,float)
Pilihan lain mungkin numpy.asarray :
import numpy as np
a = ["1.1", "2.2", "3.2"]
b = np.asarray(a, dtype=np.float64, order='C')
Untuk Python 2 *:
print a, type(a), type(a[0])
print b, type(b), type(b[0])
yang menghasilkan:
['1.1', '2.2', '3.2'] <type 'list'> <type 'str'>
[1.1 2.2 3.2] <type 'numpy.ndarray'> <type 'numpy.float64'>
Jika Anda memiliki (atau membuat) satu string, Anda dapat menggunakan np.fromstring :
import numpy as np
x = ["1.1", "2.2", "3.2"]
x = ','.join(x)
x = np.fromstring( x, dtype=np.float, sep=',' )
Catatan, x = ','.join(x)mengubah larik x menjadi string '1.1, 2.2, 3.2'. Jika Anda membaca satu baris dari file txt, setiap baris sudah menjadi string.