2016-10-17 2 views
0

numpy 행렬의 첫 번째 요소에 일종의 키를 저장하는 행렬이 있습니다 (또는 다른 방법으로 모든 키가 첫 번째 열에 있음).행의 첫 번째 요소를 사용하여 행 번호 찾기

[[123,0,1,1,2], 
[12,1,2,3,4], 
[1,0,2,5,4], 
[90,1,1,4,3]] 

키를 사용하여 행 번호를 검색하고 싶습니다. 우리는 numpy.where을 사용할 수 있지만 행 번호를 얻는 방법은 명확하지 않은 것으로 나타났습니다. 내가 원하는 걸

>>numpy.func(myMatrix,90) 
3 

도움이 되길 바랍니다.

+1

키와 데이터가있는 경우 목록이 아닌 사전을 사용해야합니다. 열쇠에 의한 dict에서 항목을 찾는 것이 빠르다. 목록을 검색하는 것은 천천히이다. –

+0

_Row_ 숫자 (명사, 행의 위치, 행렬의 _'line'_ 참조) 및 _raw_ (형용사, _wild, brute_ 또는 _unedited, 처리되지 않은 _) 번호가 다릅니다. 후자는 아마도 유효한 용어조차도 아닙니다. 네가 여기서 너를 말하는거야. – ForceBru

+2

왜 pandas DataFrame을 사용하지 않습니까? 귀하의 키 컬럼은 인덱스가되며 데이터를 선택, 그룹화 및 서브 세트하는 많은 방법이 있습니다. – pbreach

답변

0

90의 첫 번째 열을 np.where에 비교하십시오. 만약 단지 부울 어레이는 좌표의리스트 (치수 하나씩 list)을 반환주는 경우 online doc 따르면 numpy.where

In [3]: A = np.array([[123,0,1,1,2], 
[12,1,2,3,4], 
[1,0,2,5,4], 
[90,1,1,4,3]]) 


In [6]: np.where(A[:,0]==90)[0] 
Out[6]: array([3]) 
1

: 그것은 90와 동일한 아이템의 인덱스의 배열을 반환 요소는 True입니다. 배열의 첫 번째 열을 찾아 원하는 요소와 비교하여 부울 배열에서 np.where를 호출하면 원하는 정보를 얻을 수 있습니다. 그 모든 모습은 다음과 같습니다 :

row,column=np.where(myMatrix[;,0]==90) 
#Note that column will just be 0 here 
관련 문제