Bagaimana cara mengonversi
["1.1", "2.2", "3.2"]
untuk
[1.1, 2.2, 3.2]
di NumPy?
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 list
nilai yang map
dikembalikan jika Anda menggunakan map
, karena map
mengembalikan 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 (misalnyanp.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
sumber
Pilihan lain mungkin numpy.asarray :
Untuk Python 2 *:
yang menghasilkan:
sumber
Jika Anda memiliki (atau membuat) satu string, Anda dapat menggunakan np.fromstring :
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.sumber