1
오브젝트가 직접 memmap 오브젝트 또는 슬라이스 하위 오브젝트인지 판별하는 방법이 궁금합니다.numpy memmap 슬라이스에서 ndarray를 생성하십시오.
질문의 예와 같이하는 가장 쉬운 방법은 :
>>> import numpy as np
>>> filename = '../sandbox/test.bin'
>>> a = np.memmap(filename, dtype='float32', offset=0, shape=(4,2), order='F')
>>> print a
[[ 1. 5.]
[ 2. 6.]
[ 3. 7.]
[ 4. 8.]]
>>> a.filename
'Z:\\CNI\\sandbox\\test.bin'
>>> a.shape
(4L, 2L)
>>> a.offset
0
>>>
>>> b = a[:,1]
>>> print b
[ 5. 6. 7. 8.]
>>> b.filename
'Z:\\CNI\\sandbox\\test.bin'
>>> b.shape
(4L,)
>>> b.offset
0
>>>
는 어떻게 B는 memmap의 대상이 아닌, 대신 하나의 슬라이스 하위하는지 결정 것인가? 적어도 b의 오프셋이 잘못되었습니다. 당신의 OWNDATA
매개 변수를 확인하실 수 있습니다이 예에서는
체크 아웃 함수 [get_data_base] [여기] (http://ipython-books.github.io/featured-01/)에서. 나는 그것이 memmaps와 함께 작동하는지 1000 % 확신하지는 않지만 선험적으로해야한다. – eickenberg
@ user3701099이 예제에서 'b.flags' 애트리뷰트의'OWNDATA' 매개 변수를 확인할 수 있습니다. 슬라이스의 경우 'False'입니다. –
@SaulloCastro 플래그 애트리뷰트의 OWNDATA가 작동하며 매우 간단합니다 – Joshua