programing

목록의 모든 항목을 플로트로 변환하려면 어떻게 해야 합니까?

i4 2023. 5. 31. 15:16
반응형

목록의 모든 항목을 플로트로 변환하려면 어떻게 해야 합니까?

저는 텍스트 파일을 읽고, 그 안에서 십진수를 문자열로 추출하여 목록에 넣는 스크립트를 가지고 있습니다.

그래서 저는 다음과 같은 목록을 가지고 있습니다.

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

반응형