回答:
まあ、もしあなたがリストとしてデータを読んでいるのなら、そうしてくださいnp.array(map(float, list_of_strings))
(あるいは同等に、リスト内包表記を使ってください)。(Python 3では、イテレータを返すので、を使用する場合list
はmap
戻り値を呼び出す必要があります。)map
map
ただし、それが文字列の乱雑な配列である場合は、より良い方法があります。を使用しastype()
ます。
import numpy as np
x = np.array(['1.1', '2.2', '3.3'])
y = x.astype(np.float)
list
。Numpy配列は意図的に同種に型付けされています。本当に必要な場合は、オブジェクト配列(たとえばnp.array(['apple', 1.2, 1, {'b'=None, 'c'=object()}], dtype=object)
)を使用できます。ただし、オブジェクト配列には、リストを使用するよりも大きな利点はありません。
別のオプションはnumpy.asarrayかもしれません:
import numpy as np
a = ["1.1", "2.2", "3.2"]
b = np.asarray(a, dtype=np.float64, order='C')
Python 2 *の場合:
print a, type(a), type(a[0])
print b, type(b), type(b[0])
その結果:
['1.1', '2.2', '3.2'] <type 'list'> <type 'str'>
[1.1 2.2 3.2] <type 'numpy.ndarray'> <type 'numpy.float64'>