: 빠른 가능성이
In [23]: a = [1,5,6]
In [24]: b = np.zeros(10, dtype=bool)
In [25]: b[a] = True
In [26]: b
Out[26]: array([False, True, False, False, False, True, True, False, False, False], dtype=bool)
똑같이 간단하며, 목록 버전 :
In [27]: [True if i in a else False for i in range(10)]
Out[27]: [False, True, False, False, False, True, True, False, False, False]
그리고 이해를 나열 단지 둥지 목록의 목록 :
In [34]: [[True if i in a1 else False for i in range(5)] for a1 in a]
Out[34]: [[False, True, False, True, False], [False, False, True, False, True]]
배열 ve rsion이 두 번째 경우이다 것은 : a
의 하위 목록이 모두 같은 길이의 경우
In [41]: a = [[1,3],[4,2]]
In [42]: b = np.zeros((len(a),5), bool)
In [43]: b[[[0],[1]],a]
Out[43]:
array([[False, False],
[False, False]], dtype=bool)
In [44]: b[[[0],[1]],a]=True
In [45]: b
Out[45]:
array([[False, True, False, True, False],
[False, False, True, False, True]], dtype=bool)
이를하지만에만 작동합니다. 이들이 다르다면 나는 평평한 버전으로 작업해야한다고 생각합니다. 실제로 2d 케이스를 원래 1d로 바꾸십시오.
In [49]: a = [[1,2,3],[4,2],[1]]
In [50]: [[True if i in a1 else False for i in range(5)] for a1 in a]
Out[50]:
[[False, True, True, True, False],
[False, False, True, False, True],
[False, True, False, False, False]]
그러나 배열 버전은 더 복잡 조금입니다 : 비정형 a
를 들어
는 목록 버전은 여전히 쉽게 행과 열을 위해, 인덱스의
구성이 개 배열 :
In [53]: a0 = np.repeat(np.arange(3),[len(i) for i in a])
In [54]: a0
Out[54]: array([0, 0, 0, 1, 1, 2])
In [55]: a1 = np.hstack(a)
In [56]: a1
Out[56]: array([1, 2, 3, 4, 2, 1])
동등한 색인 생성 (1d) 색인 생성 :
In [57]: np.ravel_multi_index((a0,a1),(3,5))
Out[57]: array([ 1, 2, 3, 9, 7, 11], dtype=int32)
은 flat
을 통해 2 차원 배열에 적용 :
In [58]: b = np.zeros((3,5),bool)
In [59]: b.flat[Out[57]] = True
In [60]: b
Out[60]:
array([[False, True, True, True, False],
[False, False, True, False, True],
[False, True, False, False, False]], dtype=bool)
이 total_array_length'가 무엇인지 '명확하지 왜 b''의 형태 중 하나의 예에서 A''의 모양과 일치하지 않습니다 . 또한 8d 배열의 마지막 축에 대해 무엇을 말하려고하는지 명확하지 않습니다. 그것은 당신의 예제와 비슷하게 들리지 않습니다. – Imran
코드를 작성하고 게시자가 붙어있는 경우 게시하십시오. 우리가 처음부터 시작하도록 요구하지 마십시오. –
내가 더 명확하게 만들었습니까? –