Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 从numpy memmap切片创建ndarray_Python_Arrays_Numpy_Shared Memory - Fatal编程技术网

Python 从numpy memmap切片创建ndarray

Python 从numpy memmap切片创建ndarray,python,arrays,numpy,shared-memory,Python,Arrays,Numpy,Shared Memory,我想知道如何确定一个对象是直接memmap对象还是它的切片后代 解决此问题的最简单方法是举一个例子: >>> 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.]

我想知道如何确定一个对象是直接memmap对象还是它的切片后代

解决此问题的最简单方法是举一个例子:

>>> 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的偏移量是错误的。(在本例中,偏移量应为4)

在本例中,您可以检查以下项的
OWNDATA
参数:

b.flags

属性,该属性对于切片是
False

检查函数
get\u data\u base
from。我不确定它是否能与memmaps一起使用,但它应该是先验的。@user3701099在本例中,您可以检查
b.flags
属性的
OWNDATA
参数,对于一个切片,这是
False
。@SaulloCastro标志中的OWNDATA属性工作正常,非常有用straightforward@eickenbergget_data_base函数也可以从您创建的链接中工作post@user3701099好的,很高兴知道@SaulloCastro感谢
OWNDATA