내가 가지고있는은 특정 샘플 (길이가 samplesize
)인지 여부를 정보를 저장하는 데이터와 부울 배열이있는 큰 차원이 아닌 1 차원 np.int16 배열입니다. 데이터가 일부 기준 (유효 함) 또는 적합하지 않음 (유효하지 않음)에 적합합니다. 나는 이런 식으로 뭔가 뜻은 다음과 같습니다 membership[0]
Numpy : 값 배열에 따라 배열로 배열을 분할
samplesize = 5
data = array([1, 2, 3, 4, 5, 3, 2, 1, 3, 2, 4, 5, 2, 1, 1], dtype=int16)
membership = array([False, True, False], dtype=bool)
이 data[ 0*samplesize : 1*samplesize ]
가 유효한지 여부를 확인합니다.
내가 원하는 것은 회원 배열의 값이 True
인 순서대로 데이터 배열을 청크로 분할하는 것입니다. 예를 들어, membership
에 이 포함되어 있고 연속적인 True
문인 경우 data
의 의미있는 샘플이라고 판단됩니다. 우리 start[i]
및 end[i]
같은 시퀀스의 끝으로 i
번째의 시퀀스의 시작을 식별 한 가정
예
True, True, True , True - valid sequence
True, True, False, True , True - invalid sequece
, 난에서 시작 피스로의 data
어레이를 분할 할 start[i] * samplesize
이고 마지막으로 end[i] * samplesize
입니다.
어떻게해야합니까?
을하고 어디있어 문제? – sebix
알려진 인덱스 목록으로 만 나눌 수 있기 때문에'np.split'을 사용할 수 없습니다. 나는'membership' 배열을 분석함으로써 갈라짐을위한 모서리를 발견 할 필요가 있습니다 - 그것은 연속적인'True' 문장의 시작과 끝 인덱스를 찾는 방법입니다. – xolodec
조건 분할을 사용할 수 없습니다. 나는'itertools.groupby'에 대해 생각했지만 더 효율적인 해결책이있을 수 있는지 궁금합니다. – xolodec