답변:
글쎄, 당신이 목록으로 데이터를 읽는다면, 그냥하십시오 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'>