2016-09-11 4 views
-3

의이 차이 무엇인가(y_euler <0.0) [0]

idx_negative_euler = numpy.where(y_euler<0.0)[0] 

는 본 :

idx_negative_euler = numpy.where(y_euler<0.0)[0][0] 

I가 실현 배열 y_euler이 음수 인 인덱스 배열을 반환합니다. 그러나 행의 끝에있는 [0] 또는 [0][0]이 무엇을해야하는지 알 수 없습니다.

관련 문서가 없습니다. 검색 할 항목이 확실하지 않습니다. 이미 numpy.where 설명서를 살펴 보았지만 도움이되지 않았습니다.

+1

'[0]'없이 표현식을 사용해 보시지 않겠습니까? 그것과 함께 시퀀스의 첫 번째 요소를 얻습니다. 아마도'np.where() [0]'은 시퀀스를 반환 할 것입니다. –

+0

'np.where()'는 배열의 축을 구성하는 인덱스의 튜플을 반환합니다. – Kasramvd

+0

[이 튜토리얼 페이지] (https://docs.python.org/3/tutorial/introduction.html#using-python-as-a-calculator)를 확인하고 해당 페이지에서'[0]'단어를 검색하십시오. – TigerhawkT3

답변

0

[0]은 "시퀀스의 첫 번째 항목 가져 오기"를 의미합니다.

x = [5, 7, 9] 

그런 다음 x[0] 그 순서의 첫 번째 항목 다음과 같습니다 : 5.

numpy.where()이 시퀀스를 반환 예를 들어, 당신은이 목록이 있다면. 표현식의 끝에 [0]을두면 해당 순서의 첫 번째 항목을 가져옵니다.

[0][0] "은 그 시퀀스에서 첫 번째 항목을 가져 오기 다음 (또한 시퀀스 자체이다) 순서의 첫 번째 항목을 얻고,"를 의미한다. 따라서 numpy.where()이 목록 목록을 반환하면 [0][0]은 첫 번째 목록의 첫 번째 항목을 가져옵니다.

0

간단한 1D 배열 확인 : 튜플 배열의 (...,), 각 차원에 대한 하나를 반환

In [60]: x=np.array([0,1,-1,2,-1,0]) 

:

In [61]: np.where(x<0) 
Out[61]: (array([2, 4], dtype=int32),) 

는 튜플에서 요소 (여기 만) 첫 번째 풀을

In [62]: np.where(x<0)[0] 
Out[62]: array([2, 4], dtype=int32) 

색인 배열의 첫 번째 요소를 가져옵니다.

where에 의해 반환 된 전체 튜플을 사용하여 배열을 인덱싱 할 수 있습니다.

In [64]: x[np.where(x<0)] 
Out[64]: array([-1, -1]) 

x[2,4], x[([2,4],)] 같은 색인을한다.

값이 2d 이상인 Dim 어레이에서 작업 할 때 더 유용합니다. 이 경우 np.where(...)[0]은 'rows'인덱스 배열을 제공합니다. 그러나 where(...)[0]은 일반적으로 튜플 레이어가 필요없는 1d 경우에서 가장 일반적입니다.

관련 문제