나는 데이터과 같이 16 비트 정수 블록으로 구성되어있는 이진 파일이 있습니다읽기 이진 데이터
- 비트 15 : 디지털 비트를 1
- 비트 14 : 디지털 비트 2
- 비트 13-0 : 14 비트 부호있는 정수
내가 3 개 배열로 파일에서 데이터를 추출하는 방법을 발견하는 유일한 방법은 다음과 같습니다
data = np.fromfile("test1.bin", dtype=np.uint16)
digbit1 = data >= 2**15
data = np.array([x - 2**15 if x >= 2**15 else x for x in data], dtype=np.uint16)
digbit2 = data >= 2**14
data = np.array([x-2**14 if x >= 2**14 else x for x in data])
data = np.array([x-2**14 if x >= 2**13 else x for x in data], dtype=np.int16)
이제 원래의 데이터보다 for 루프를 사용하여 동일한 작업을 수행하고 3 개의 개별 배열을 채울 수 있음을 알고 있지만 여전히 추한 것입니다. 내가 알고 싶은 것은 dtype=[('db', [('1', bit), ('2', bit)]), ('temp', 14bit-signed-int)])
스타일로이 작업을보다 효율적으로 수행하는 방법이므로 data['db']['1'] = array of ones and zeros
처럼 쉽게 액세스 할 수 있습니다.
'팩'에 대해 들어 본 적이 있습니다. numpy가 바이너리 파일과 관련이 있다는 것을 나는 실제로 알지 못한다. –
좀 더 도움이되는 방법으로 의견을 표현해 주실 수 있습니까? 아마도 바이너리 파일 자체와는 관련이 없지만 내용이 있으면 정말 유용합니다. 적어도 내 경우에는. – TheoryX