Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.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 使用分块数组(Akwkard lib)进行奇特的索引或屏蔽_Python_Arrays_Uproot_Awkward Array - Fatal编程技术网

Python 使用分块数组(Akwkard lib)进行奇特的索引或屏蔽

Python 使用分块数组(Akwkard lib)进行奇特的索引或屏蔽,python,arrays,uproot,awkward-array,Python,Arrays,Uproot,Awkward Array,我正在加载一个根文件,其中包含uplot.lazyarrays(),该文件将生成一个表。 我计算这个表的一个函数,它返回一个长度等于表长度的JaggedArray。这是以ChunkedArray的形式出现的,我想将其用作掩码,应用于从表中派生的另一个JaggedArray,同样以ChunkedArray的形式出现。 然而,这似乎不起作用 运行此命令时:partial\u prediction=array[variable][additional\u selection\u mask] 我得到以下

我正在加载一个根文件,其中包含
uplot.lazyarrays()
,该文件将生成一个
。 我计算这个表的一个函数,它返回一个长度等于表长度的
JaggedArray
。这是以
ChunkedArray
的形式出现的,我想将其用作掩码,应用于从表中派生的另一个
JaggedArray
,同样以
ChunkedArray
的形式出现。 然而,这似乎不起作用

运行此命令时:
partial\u prediction=array[variable][additional\u selection\u mask]
我得到以下错误:

~/.local/lib/python3.7/site-packages/awkward/array/chunked.py in __getitem__(self, where)
    334                 if isinstance(h, awkward.array.virtual.VirtualArray):
    335                     h = h.array
--> 336                 chunks.append(c[h, tail])
    337                 chunksizes.append(len(chunks[-1]))
    338             return self.copy(chunks=chunks, chunksizes=chunksizes)

~/.local/lib/python3.7/site-packages/awkward/array/jagged.py in __getitem__(self, where)
    768 
    769                 else:
--> 770                     raise TypeError("cannot interpret shape {0}, dtype {1} as a fancy index or mask".format(head.shape, head.dtype))
    771 
    772             if isinstance(node, self.numpy.ndarray) and len(node.shape) < sum(0 if isinstance(x, slice) else 1 for x in tail):

TypeError: cannot interpret shape (0,), dtype float64 as a fancy index or mask
哪个输出以下内容

array[variable]
type =  <class 'awkward.array.chunked.ChunkedArray'>
len =  126071
array =  [[3.9413936 2.9023154 2.9157693 ... 1.8322366 1.8115876 1.7142034] [2.514293 49.567352 13.9077 ... 2.4213006 1.6156256 2.8986027] [1.220779 1.2491984 1.4126266 ... 2.3114712 1.7704046 1.347573] ... [0.32590318 1.2202137 1.7752564 ... 2.4342306 2.7896073 1.1572217] [0.2279669 0.21500091 0.21401915 ... 0.18808685 0.16509545 0.15571955] [2.000058 1.925363 1.8934264 ... 2.5060847 2.1708803 2.227355]]

additional_selection_mask
type =  <class 'awkward.array.chunked.ChunkedArray'>
len =  126071
array =  [False False False ... False False False]
数组[变量]
类型=
len=126071
数组=[[3.9413936 2.9023154 2.9157693…1.8322366 1.8115876 1.7142034][2.514293 49.567352 13.9077…2.4213006 1.6156256 2.8986027][1.220779 1.2491984 1.4126266…2.3114712 1.770406 1.347573]…[0.32590318 1.2202137 1.7752564…2.4342306 2.7896073 1.1572217][0.227960.2150004 1.1550.188955][2.000058 1.925363 1.8934264 ... 2.5060847 2.1708803 2.227355]]
附加选择遮罩
类型=
len=126071
数组=[False False…False False]

在这种情况下,
附加选择\u掩码
不是一个
JaggedArray
,但在一般情况下,它可以是相同形状的
数组[变量]

我认为问题在于两个数组的chunksize是不同的:可能1)将ChunkedArray转换为JaggedArray就足够了,但这不清楚如何实现,或者2)确保两个数组的chunksize相同,这同样,我不知道如何实现。这行代码(chunked.py:336)有一个bug,该bug是今天早上提出并修复的。请尝试升级。
array[variable]
type =  <class 'awkward.array.chunked.ChunkedArray'>
len =  126071
array =  [[3.9413936 2.9023154 2.9157693 ... 1.8322366 1.8115876 1.7142034] [2.514293 49.567352 13.9077 ... 2.4213006 1.6156256 2.8986027] [1.220779 1.2491984 1.4126266 ... 2.3114712 1.7704046 1.347573] ... [0.32590318 1.2202137 1.7752564 ... 2.4342306 2.7896073 1.1572217] [0.2279669 0.21500091 0.21401915 ... 0.18808685 0.16509545 0.15571955] [2.000058 1.925363 1.8934264 ... 2.5060847 2.1708803 2.227355]]

additional_selection_mask
type =  <class 'awkward.array.chunked.ChunkedArray'>
len =  126071
array =  [False False False ... False False False]