2017-02-17 5 views
0

나는이 다음 코드 :numpy에서 마스크 된 두 벡터의 내적 생성물이 이상한 모양의 배열을 반환하는 이유는 무엇입니까?

result = np.ma.dot(array1, masked_array2) 

같은 것을 제공 :

masked_array(data = 24.681441709536468, 
     mask = False, 
     fill_value = 1e+20) 

result.data.shape가 있습니다 : 나는 그것을 변환하여 값에 액세스 할 수 있습니다

() 

을 플로트에,

float(result.data) 

올바른 방법으로 데이터에 액세스합니까?

답변

2

결과는 0D 텐서입니다.

일반적으로 NumPy와 네이티브 유형 그러나

type(np.dot([1,2], [3,4])) # gives 'int' 

, 그 결과로 인해 마스크의 존재에 마스크 배열 인 경우, 정보를 잃지 않고 기본 형태로 직접 변환 할 수있는 방법이 없습니다에 0D 텐서 변환합니다. 따라서 결과적으로 "이상한 모양의"0D 텐서를 얻게됩니다.

예, 플로트로 변환하여 액세스 할 수 있습니다.