반응형
빈이 다음과 같은 히스토그램의 예가 있습니다.
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
5.6
과 같은 값이 주어지면 주어진 값이 히스토그램에 속하는 빈 목록의 인덱스를 얻을 수 있기를 원하므로이 예제에서는 i = 4
는 5
입니다. 또한 주어진 값이 항상 빈 범위 내에 있다고 가정 할 수 있습니다. 루프로 이것을 할 수 있고 비교 검사를 할 수 있다는 것을 알고 있지만 더 빠른 방법이 있습니까?
해결 방법
import bisect
l = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
bisect.bisect(l, 5.6) - 1
# 4
더 큰 목록의 경우 파이썬 루프보다 훨씬 빠릅니다.
import bisect
l = list(range(100000))
n = 79587.6
%timeit next(x[0]-1 for x in enumerate(l) if x[1] > n)
# 8.33 ms ± 22.8 µs per loop (mean ± std. dev. of 7 runs, 100 loops each)
%timeit bisect.bisect(l, n) - 1
# 800 ns ± 0.769 ns per loop (mean ± std. dev. of 7 runs, 1000000 loops each)
참조 페이지 https://stackoverflow.com/questions/63759406
반응형
'파이썬' 카테고리의 다른 글
파이썬 유형 오류 : flag1 ()에 1 개의 필수 위치 인수가 없습니다 : 'y' (0) | 2020.09.12 |
---|---|
파이썬 NameError : 파일 디렉터리에서 분석을 위해 데이터를로드하려고합니다. (0) | 2020.09.12 |
파이썬에서 새 열에 하위 문자열 찾기 및 추출 (0) | 2020.09.12 |
파이썬 사전 값을 기반으로 pandas 데이터 프레임의 개별 셀에 색상을 지정하는 방법 (0) | 2020.09.12 |
파이썬 HTML 페이지에 HTML 인 Python 출력 포함 (0) | 2020.09.12 |
댓글