2014-04-16 2 views

답변

1

생성하는 것 인 NumPy와 표현을 찾고 :

mask = np.fromfunction(lambda i, j: (i >= 5) * (j >= 5), (10, 10), dtype=int) 

그러나이 밝혀이 꽤 될 원래 구현보다 느립니다. (행과 열 인덱스를 포함하는 두 개의 배열을 만듭니다).

배열을 초기화하고 값을 수동으로 설정하지 않으려면 np.empty을 사용할 수 있습니다. 그러나이 특별한 경우에는 np.zeros 또는 np.ones을 사용하는 것이 더 나을 것입니다. 그리고 업데이트해야하는 항목 중 가장 작은 수의 값을 전환하십시오.

2

정말로 한 라이너를 갖고 싶다면 가능한 방법입니다. 하지만 원래 코드가 더 깨끗하고 선명하며 전반적으로 더 낫다고 말할 수 있습니다 ...

>>> np.logical_and.outer(np.arange(10) >= 5, np.arange(6) >= 3) 
array([[False, False, False, False, False, False], 
     [False, False, False, False, False, False], 
     [False, False, False, False, False, False], 
     [False, False, False, False, False, False], 
     [False, False, False, False, False, False], 
     [False, False, False, True, True, True], 
     [False, False, False, True, True, True], 
     [False, False, False, True, True, True], 
     [False, False, False, True, True, True], 
     [False, False, False, True, True, True]], dtype=bool) 
관련 문제