여기 하나의 방법을 :
In [1]: index_array = np.array([3, 4, 7, 9])
In [2]: n = 15
In [3]: mask_array = np.zeros(n, dtype=int)
In [4]: mask_array[index_array] = 1
In [5]: mask_array
Out[5]: array([0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0])
마스크 범위가 항상 경우 index_array
을 제거하고 조각에 1
을 할당 할 수 있습니다
In [6]: mask_array = np.zeros(n, dtype=int)
In [7]: mask_array[5:10] = 1
In [8]: mask_array
Out[8]: array([0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0])
,536,913,632 대신 정수의 부울 값의 배열을 원하는 경우가 생성 될 때 10
는 mask_array
의 dtype
변경 : 요청으로
In [11]: mask_array = np.zeros(n, dtype=bool)
In [12]: mask_array
Out[12]:
array([False, False, False, False, False, False, False, False, False,
False, False, False, False, False, False], dtype=bool)
In [13]: mask_array[5:10] = True
In [14]: mask_array
Out[14]:
array([False, False, False, False, False, True, True, True, True,
True, False, False, False, False, False], dtype=bool)
scipy에는 마스크 된 어레이 모듈이 있습니다. 그것은 질문과 관련이 있습니다. http://docs.scipy.org/doc/numpy/reference/maskedarray.html –
'[x 범위 (500)의 x에 대한 index_array]'정렬은 수행하지만 대신 'True' 및'False'를 사용합니다. 1 and 0. – genisage
@genisage 답변으로 의견을 말씀해 주시겠습니까? 너를 선택하고 싶다. 그것은 제가 찾고 있던 정확한 것입니다. 답변 감사합니다! – Efreeto