목록의 모든 항목을 플로트로 변환하려면 어떻게 해야 합니까?
저는 텍스트 파일을 읽고, 그 안에서 십진수를 문자열로 추출하여 목록에 넣는 스크립트를 가지고 있습니다.
그래서 저는 다음과 같은 목록을 가지고 있습니다.
my_list = ['0.49', '0.54', '0.54', '0.55', '0.55', '0.54', '0.55', '0.55', '0.54']
목록의 각 값을 문자열에서 플로트로 변환하려면 어떻게 해야 합니까?
시도해 본 결과:
for item in my_list:
float(item)
하지만 이것은 저에게 효과가 없는 것 같습니다.
[float(i) for i in lst]
정확하게는 플로트 값으로 새 리스트를 만듭니다.과는 달리map
접근은 py3k에서 작동할 것입니다.
map(float, mylist)
해야 합니다.
(Python 3에서 맵은 목록 개체 반환을 중단하므로 반복할 대상이 아닌 새로운 목록을 원한다면 다음 중 하나가 필요합니다.list(map(float, mylist)
또는 거의 틀림없이 더 파이썬적인 사일런트 고스트의 답변을 사용합니다.)
이는 루프를 사용하지 않는 또 다른 방법입니다.
import numpy as np
list(np.float_(list_name))
float(item)
옳은 일을 하세요: 그것은 그것의 주장을 부유하고 그것을 반환하도록 변환하지만, 그것은 제자리에서 주장을 바꾸지 않습니다.코드에 대한 간단한 수정은 다음과 같습니다.
new_list = []
for item in list:
new_list.append(float(item))
목록 이해를 사용하여 동일한 코드를 더 짧게 작성할 수 있습니다.new_list = [float(i) for i in list]
인플레이스에서 목록 변경하기
for index, item in enumerate(list):
list[index] = float(item)
BTW, 사용을 피합니다.list
변수의 경우 동일한 이름으로 기본 제공 함수를 위장하기 때문입니다.
너는 심지어 이것을 numpy로 할 수 있습니다.
import numpy as np
np.array(your_list,dtype=float)
목록의 np 배열을 float로 반환합니다.
또한 'dtype'을 int로 설정할 수 있습니다.
사용할 수 있습니다.map()
목록을 직접 변환하는 기능floats
:
float_list = map(float, list)
numpy를 사용하여 목록을 부동 배열 또는 행렬로 직접 변환할 수 있습니다.
import numpy as np
list_ex = [1, 0] # This a list
list_int = np.array(list_ex) # This is a numpy integer array
정수 배열을 부동 배열로 변환하려면 0을 추가합니다.
list_float = np.array(list_ex) + 0. # This is a numpy floating array
이렇게 하면 됩니다.
my_list = ['0.49', '0.54', '0.54', '0.54', '0.54', '0.54', '0.55', '0.54',
'0.54', '0.54', '0.55', '0.55', '0.55', '0.54', '0.55', '0.55', '0.54',
'0.55', '0.55', '0.54']
print type(my_list[0]) # prints <type 'str'>
my_list = [float(i) for i in my_list]
print type(my_list[0]) # prints <type 'float'>
numpy를 사용하여 루프를 방지할 수 있습니다.
import numpy as np
list(np.array(my_list).astype(float)
import numpy as np
my_list = ['0.49', '0.54', '0.54', '0.54', '0.54', '0.54', '0.55', '0.54', '0.54', '0.54', '0.55', '0.55', '0.55', '0.54', '0.55', '0.55', '0.54',
'0.55', '0.55', '0.54']
print(type(my_list), type(my_list[0]))
# <class 'list'> <class 'str'>
유형을 문자열 목록으로 표시합니다.numpy를 사용하여 이 목록을 동시에 부동 소수점 배열로 변환할 수 있습니다.
my_list = np.array(my_list).astype(np.float)
print(type(my_list), type(my_list[0]))
# <class 'numpy.ndarray'> <class 'numpy.float64'>
먼저 부동 문자열 목록에서 숫자를 추출해야 했습니다.
df4['sscore'] = df4['simscore'].str.findall('\d+\.\d+')
그런 다음 각 항목을 플로트로 변환합니다.
ad=[]
for z in range(len(df4)):
ad.append([float(i) for i in df4['sscore'][z]])
결국 모든 플로트를 float64로 데이터 프레임에 할당합니다.
df4['fscore'] = np.array(ad,dtype=float)
for i in range(len(list)): list[i]=float(list[i])
newlist = list(map(float, mylist))
프로그램에서 다음을 사용하여 이 문제를 해결했습니다.
number_input = float("{:.1f}".format(float(input())))
list.append(number_input)
언급URL : https://stackoverflow.com/questions/1614236/how-do-i-convert-all-of-the-items-in-a-list-to-floats
'programing' 카테고리의 다른 글
비활성화된 UIButton 색이 바랜다거나 회색이 아님 (0) | 2023.05.31 |
---|---|
Postgre의 모든 테이블을 삭제하려면 어떻게 해야 합니까?SQL 데이터베이스? (0) | 2023.05.31 |
새 azure 포털(미리 보기)에서 VM에 새 엔드포인트를 추가하는 방법은 무엇입니까? (0) | 2023.05.31 |
호스트에 대한 nopg_syslog.conf 항목 (0) | 2023.05.26 |
-ObjC 링커 플래그의 역할은 무엇입니까? (0) | 2023.05.26 |