developer tip

문자열 배열을 numpy의 부동 소수점 배열로 변환하는 방법은 무엇입니까?

optionbox 2020. 8. 15. 09:05
반응형

문자열 배열을 numpy의 부동 소수점 배열로 변환하는 방법은 무엇입니까?


변환 방법

["1.1", "2.2", "3.2"]

[1.1, 2.2, 3.2]

NumPy에서?


글쎄, 당신이 목록으로 데이터를 읽는다면, 그냥하십시오 np.array(map(float, list_of_strings))(또는 동등하게, 목록 이해력을 사용하십시오). (Python 3에서는 이제 반복자를 반환 하므로 를 사용 list하면 map반환 값 을 호출해야합니다 .)mapmap

그러나 이미 수많은 문자열 배열 인 경우 더 나은 방법이 있습니다. 사용 astype().

import numpy as np
x = np.array(['1.1', '2.2', '3.3'])
y = x.astype(np.float)

이것도 사용할 수 있습니다

import numpy as np
x=np.array(['1.1', '2.2', '3.3'])
x=np.asfarray(x,float)

단일 문자열이 있거나 생성 한 경우 np.fromstring 사용할 수 있습니다 .

import numpy as np
x = ["1.1", "2.2", "3.2"]
x = ','.join(x)
x = np.fromstring( x, dtype=np.float, sep=',' )

참고 x = ','.join(x)문자열을 X 배열 변환 '1.1, 2.2, 3.2'. txt 파일에서 한 줄을 읽으면 각 줄은 이미 문자열이됩니다.


다른 옵션은 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'>

참고 URL : https://stackoverflow.com/questions/3877209/how-to-convert-an-array-of-strings-to-an-array-of-floats-in-numpy

반응형