[PYTHON] 파이썬에서 줄임표 슬라이싱 구문을 어떻게 사용합니까? [복제]
PYTHON파이썬에서 줄임표 슬라이싱 구문을 어떻게 사용합니까? [복제]
이것은 Python의 숨겨진 기능에서 나온 것이지만 기능이 어떻게 작동하는지 설명하는 좋은 설명서 나 예제를 볼 수 없습니다.
해결법
-
==============================
1.내장 클래스가 그것을 사용하지 않으므로 자신의 클래스에서 사용하게됩니다.
내장 클래스가 그것을 사용하지 않으므로 자신의 클래스에서 사용하게됩니다.
Numpy는 문서에 언급 된대로 그것을 사용합니다. 여기에 몇 가지 예가 있습니다.
자신의 수업에서는 다음과 같이 사용합니다.
>>> class TestEllipsis(object): ... def __getitem__(self, item): ... if item is Ellipsis: ... return "Returning all items" ... else: ... return "return %r items" % item ... >>> x = TestEllipsis() >>> print x[2] return 2 items >>> print x[...] Returning all items
물론 파이썬 문서와 언어 참조가 있습니다. 그러나 그것들은별로 도움이되지 않습니다.
-
==============================
2.줄임표는 고차원 데이터 구조를 조각내는 데 사용됩니다.
줄임표는 고차원 데이터 구조를 조각내는 데 사용됩니다.
이 시점에서 다차원 슬라이스를 모든 차원으로 확장하기 위해 많은 전체 조각 (:)을 삽입해야합니다.
예:
>>> from numpy import arange >>> a = arange(16).reshape(2,2,2,2)
자, 여러분은 2x2x2x2 차수의 4 차원 행렬을가집니다. 4 차원의 모든 첫 번째 요소를 선택하려면 줄임표 표기법을 사용할 수 있습니다
>>> a[..., 0].flatten() array([ 0, 2, 4, 6, 8, 10, 12, 14])
이는
>>> a[:,:,:,0].flatten() array([ 0, 2, 4, 6, 8, 10, 12, 14])
자신의 구현에서 위에서 언급 한 계약을 무시하고 적합하다고 생각되는 모든 것을 위해 자유롭게 사용할 수 있습니다.
-
==============================
3.이것은 줄임표와 관련이없는 줄임표의 또 다른 용도입니다. 큐를 사용하여 스레드 내 통신에서 "완료"신호를 나타내는 표시로 자주 사용합니다. 그곳에 있습니다, 그것은 객체이고, 그것은 싱글 톤이며, 그 이름은 "부족함"을 의미하며, 과도하게 사용 된 None (보통 데이터 흐름의 일부로 큐에 넣을 수 있음)이 아닙니다. YMMV.
이것은 줄임표와 관련이없는 줄임표의 또 다른 용도입니다. 큐를 사용하여 스레드 내 통신에서 "완료"신호를 나타내는 표시로 자주 사용합니다. 그곳에 있습니다, 그것은 객체이고, 그것은 싱글 톤이며, 그 이름은 "부족함"을 의미하며, 과도하게 사용 된 None (보통 데이터 흐름의 일부로 큐에 넣을 수 있음)이 아닙니다. YMMV.
-
==============================
4.다른 답변에서 언급했듯이 조각 만들기에 사용할 수 있습니다. 많은 전체 조각 표기법 (:)을 작성하고 싶지 않을 때 또는 조작중인 배열의 차원이 무엇인지 확실하지 않은 경우에 유용합니다.
다른 답변에서 언급했듯이 조각 만들기에 사용할 수 있습니다. 많은 전체 조각 표기법 (:)을 작성하고 싶지 않을 때 또는 조작중인 배열의 차원이 무엇인지 확실하지 않은 경우에 유용합니다.
강조해야 할 중요한 점은 다른 답변에서 누락 된 점은 채울 차원이 더 이상 없을 때도 사용할 수 있다는 것입니다.
예:
>>> from numpy import arange >>> a = arange(4).reshape(2,2)
이렇게하면 오류가 발생합니다.
>>> a[:,0,:] Traceback (most recent call last): File "<stdin>", line 1, in <module> IndexError: too many indices for array
이것은 작동 할 것이다 :
a[...,0,:] array([0, 1])
from https://stackoverflow.com/questions/118370/how-do-you-use-the-ellipsis-slicing-syntax-in-python by cc-by-sa and MIT license
'PYTHON' 카테고리의 다른 글
[PYTHON] Spark에서 INFO 로깅을 끄는 방법은 무엇입니까? (0) | 2018.10.09 |
---|---|
[PYTHON] 파이썬에서 캐치되지 않은 예외를 로깅하기 (0) | 2018.10.09 |
[PYTHON] 장고 등록 및 장고 프로필, 사용자 정의 양식 사용 (0) | 2018.10.09 |
[PYTHON] 파이썬 스크립트에서 암호 숨김 (안전하지 않은 난독 화만) (0) | 2018.10.09 |
[PYTHON] 평평한 함수와 래벨 함수의 차이점은 무엇입니까? (0) | 2018.10.09 |