2017-11-28 1 views
0

이 문을 이해하려고 노력 파이썬에서 다음과 같은 성명을 통해 온 : 나는 .a 부분을 제거하면파이썬

a = m[:,1].a - m[:,0].a 

, 나는 우리가 두 번째에서 배열의 첫 번째 열을 빼기 위해 노력하는 것을 이해 기둥.

.a은 무엇을 추가합니까?

감사합니다.

+0

'm '이 (가) 어떻게 보이는지 보여 줄 수 있습니까? – Psidom

+0

'.a'는'm [:, 1]'에 의해 반환되는 것에서 그 속성에 접근하고 있습니다. 단지'object' dtype이라고 가정 할 수 있습니다. –

+3

아니요, 슬라이스가 반환되는 모든 항목에서 'a' 속성의 값을 뺍니다. – chepner

답변

0

내 의견을 쓸 때이 표기법이 recarray과 일치 함을 깨달았습니다.

In [28]: dt = np.dtype([('a',int),('b',float)]) 

가 함께 recarray 초기화 필드의 커플 함께 DTYPE 정의 본 dtype :

첫번째 필드 arr['a'] 또는 arr.a (구조적 배열 또는 recarray 속성)에 액세스 할 수
In [29]: arr = np.ones((3,2), dtype=dt).view(np.recarray) 
In [30]: arr['a'] = np.arange(6).reshape(3,2) 
In [31]: arr 
Out[31]: 
rec.array([[(0, 1.), (1, 1.)], 
      [(2, 1.), (3, 1.)], 
      [(4, 1.), (5, 1.)]], 
      dtype=[('a', '<i4'), ('b', '<f8')]) 
In [32]: arr.a 
Out[32]: 
array([[0, 1], 
     [2, 3], 
     [4, 5]]) 

. 이제 우리는 당신과 같은 표현을 쓸 수 있습니다 :

In [34]: arr[:,0].a - arr[:,1].a 
Out[34]: array([-1, -1, -1]) 

구조화 된 배열은 특히 CSV 파일에서 데이터를로드 할 때 특히 그렇습니다. 재 배열 변형은 실제로는 더 오래되었지만 사용되지는 않았습니다. 예를 들어 recfunctions 라이브러리는 특별한 가져 오기가 필요합니다. 분명히 속성 표기법은 특별하거나 유용하지 않습니다.

이것이 맞지 않으면 견적의 출처에 대해 자세히 알려야합니다.