2013-07-26 3 views
3

내가 몇 가지 코드를 읽고 있어요 내가 " list[:,i] for i in range(0,list))......""[:,]"목록을 파이썬으로 잘라내는 것은 무엇을 의미합니까?

내가 거기에 무엇을 쉼표를하고있는만큼 신비화 오전 참조, :,가와 구글은 구글의 구두점을 기울인다 어떠한 답변을 제공하지 않습니다.

도움을 주시면 큰 도움이됩니다.

+3

Google 검색 'list slicing python comma'가 작동합니다. 당신이 이것을 찾는 어려움을 언급했기 때문에 그것을 언급하십시오. – keyser

+0

변수'list'가 다차원 numpy 배열 인 경우 (Martijn에서 제시 한 바와 같이)'for range (0, list)'의 마지막 비트가 의미가 없다는 것은 이상한 예입니다. 또한'list'라는 변수를 갖는 것은 좋지 않습니다. 왜냐하면 파이썬의'list' 함수가 숨겨져 있기 때문입니다 ... –

답변

10

numpy 다차원 배열 슬라이스를보고 있습니다.

쉼표 튜플 마크, numpy 배열로서 해석 [(:, i)]로 읽을 : 제 치수 :와 엔드 - 투 - 엔드 (모든 행)를 분리하기 위해, 각 행에 대해 i하나 열을 선택한다.

numpy 자습서의 Indexing, Slicing and Iterating을 참조하십시오.

+0

'list.T에있는 열에 대해서 ...'기묘한 방법으로 보입니다. –

+0

@JonClements : 차원. 그렇지 않으면 두 번째와 첫 번째 축을 교환하기 위해'numpy.swapaxes()'가 필요합니다. –

+0

@SvenMarnach : 오른쪽; 내 numbpy와 newbness 여기를 통해 빛난다. –

2

Martijn의 답변을 더럽 히려하지 않았지만, 이것에 당황스러워서 무슨 일이 일어나고 있는지 보여주기 위해 약간의 getitem explorer를 작성했습니다. 파이썬은 슬라이스 객체를 getitem에 제공하여 객체가 무엇을할지 결정할 수 있습니다. 다차원 배열도 튜플입니다.

>>> class X(object): 
...  def __getitem__(self, name): 
...    print type(name),name 
... 
>>> x=X() 
>>> x[:,2] 
<type 'tuple'> (slice(None, None, None), 2) 
>>> x[1,2,3,4] 
<type 'tuple'> (1, 2, 3, 4) 
>>> 
+0

+1, 이것은 numpy 배열이 아닌 다른 객체가 될 수 있음을 보여줍니다. 터플로 인덱싱됩니다 (OP에는 numpy 태그가 포함되지 않음). 여전히이'x'는'for i in range (0, x)'와의 오류를 낳습니다. OP는 그가 읽은 코드를 더 게시해야합니다 ... –

관련 문제