Python에서 부동 숫자 범위 가져 오기

Muhammad Waiz Khan 2023년1월30일
  1. Python에서numpy.arange()메서드를 사용하여 부동 소수점 숫자 범위 가져 오기
  2. Python의 리스트 내포을 사용하여 부동 소수점 숫자 범위 가져 오기
  3. Python의 Generator Comprehension을 사용하여 부동 소수점 숫자 범위 가져 오기
  4. Python의 Generator 함수를 사용하여 부동 소수점 숫자 범위 얻기
  5. Python에서numpy.linspace()메서드를 사용하여 부동 소수점 숫자 범위 가져 오기
Python에서 부동 숫자 범위 가져 오기

이 자습서에서는 Python에서 부동 소수점 값 시퀀스를 가져 오는 다양한 방법을 살펴 봅니다. 단계 크기가0.1인 일련의 숫자가 필요하지만 문제는range()함수가 float를 입력으로 받아들이지 않고 대신TypeError를 반환한다는 것입니다.

아래에 설명 된 방법을 사용하여 Python에서 균일 한 단계 크기로 부동 소수점 값 시퀀스를 생성 할 수 있습니다.

Python에서numpy.arange()메서드를 사용하여 부동 소수점 숫자 범위 가져 오기

numpy.arange(start, stop, step)메소드는step값과 동일한 단계 크기로startstop값 내의 일련의 값을 리턴합니다. startstep인수의 기본값은 각각 0과 1입니다.

numpy.arange()메소드 사용의 장점은 float 값의 범위를 생성 할 수 있다는 것입니다. 그러나 이것은 Python의 기본 기능이 아니며이를 사용하려면NumPy라이브러리가 필요합니다.

아래 예제 코드는numpy.arange()메소드를 사용하여0.1과 같은 단계 크기로0에서1까지의 값 시퀀스를 가져 오는 방법을 보여줍니다.

import numpy as np

seq = np.arange(0, 1, 0.1)
print(seq)

출력:

[0.  0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9]

Python의 리스트 내포을 사용하여 부동 소수점 숫자 범위 가져 오기

리스트 내포은 Python의 기존 목록에서 새 목록을 만드는 구문 방법입니다. range()메소드에 의해 반환 된 값 시퀀스에서 새 목록을 생성하여 부동 값의 범위 또는 시퀀스를 생성 할 수 있습니다.

range()메소드는 정수 시퀀스 만 생성 할 수 있으므로 원하는 시퀀스를 얻으려면 시퀀스의 각 값을 필요한 부동 소수점 값으로 곱하거나 나눠야합니다. 정수, 즉3을 부동 소수점 값0.1과 곱하면0.30000000000000004가 반환되므로 정수를10으로 나누는 것이 부동 값 시퀀스를 생성하는 데 선호되어야하는 이유입니다.

아래 예제 코드는 리스트 내포 메서드를 사용하여 Python에서 float 값의 범위 또는 시퀀스를 가져 오는 방법을 보여줍니다.

seq = [x / 10 for x in range(0, 10)]
print(seq)

출력:

[0.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9]

Python의 Generator Comprehension을 사용하여 부동 소수점 숫자 범위 가져 오기

생성기 이해는 Python에서 반복 가능한 생성기 객체를 생성하는 목록 이해와 유사한 구문 접근 방식입니다. next()메소드를 사용하여 생성기에서 새 값에 액세스하거나for루프를 사용하여 전체 시퀀스를 반복 할 수 있습니다.

아래 예제 코드는 생성기 이해를 사용하여 Python에서 부동 소수점 범위를 가져 오는 방법을 보여줍니다.

seq = (x / 10 for x in range(0, 10))
for x in seq:
    print(x, end=" ")

출력:

0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 

Python의 Generator 함수를 사용하여 부동 소수점 숫자 범위 얻기

생성기 이해가 Python에서 생성기 객체를 가져 오는 간결하고보다 간단한 방법이지만 생성기 함수는start,stopstep값을 사용하여 부동 소수점 값 범위를 가져 오는 재사용 가능하고 더 나은 방법입니다. 우리가 선택한.

아래 예제 코드는 Python의range()함수와 유사한yield키워드를 사용하여 생성기 함수를 만드는 방법을 보여줍니다.

def myrange(start, stop, step):
    while start < stop:
        yield start
        start = start + step


seq = myrange(0.0, 1.0, 0.1)

for x in seq:
    print(x)

Python에서numpy.linspace()메서드를 사용하여 부동 소수점 숫자 범위 가져 오기

numpy.arange()메소드와 같은numpy.linspace()메소드는start값에서stop값까지 일련의 값을 반환합니다. step인수 대신numpy.linspace()메소드는start에서stop값까지 생성 할 값의 수를 지정하는num인수를 사용합니다.

따라서numpy.linspace()메소드에num값의 수를 제공해야합니다. 다음 공식은start,stopstep값을 사용하여num의 값을 계산할 수 있습니다.

num = (stop - start)/step

아래 예제 코드는numpy.linspace()를 사용하여step0.1과 같은0에서1까지의 부동 소수점 범위를 생성하는 방법을 보여줍니다. 필요한 시퀀스의num값은(0 - 1)/0.1 = 10입니다.

seq = np.linspace(0, 1, 10, endpoint=0)
print(seq)

출력:

array([0. , 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9]

endpoint인수는 시퀀스가 ​​기본적으로0에서 시작하므로 시퀀스의 마지막 값을 포함할지 여부를 지정합니다.

관련 문장 - Python Float