问题标签 [awkward-array]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
286 浏览

awkward-array - Uproot 4中的TLorentz向量

我尝试在 uproot4 中使用 TLorentz 向量。
但我发现“uproot_methods”模块中的方法现在可以与 Awkward 高级数组一起使用。

错误信息#----------------------------->
Traceback (最近一次调用最后):文件“/home/jwkim/anaconda3/lib/python3.8/site-packages/awkward/array/base.py”,第 389 行,在 _util_toarray 返回 cls.numpy.frombuffer(值,dtype= getattr(value, "dtype", defaultdtype)).reshape(getattr(value, "shape", -1)) TypeError: a bytes-like object is required, not 'Array'

在处理上述异常的过程中,又出现了一个异常:

回溯(最后一次调用):文件“anal.py”,第 19 行,在 Electron_T2vec = TVector2Array.from_polar(Electron_pt,Electron_phi) 文件“/home/jwkim/anaconda3/lib/python3.8/site-packages/awkward/ util.py”,第 112 行,在 func_wrapper 换行中,arrays = unwrap_jagged(cls, awkcls, _normalize_arrays(cls, arrays)) 文件“/home/jwkim/anaconda3/lib/python3.8/site-packages/awkward/util. py”,第 84 行,在 _normalize_arrays arrays[i] = cls.awkward.util.toarray(arrays[i], cls.awkward.numpy.float64) 文件“/home/jwkim/anaconda3/lib/python3.8/site -packages/awkward/util.py”,第 32 行,在 toarray 中返回尴尬.array.base.AwkwardArray._util_toarray(value, defaultdtype, passthrough=passthrough) 文件“/home/jwkim/anaconda3/lib/python3.8/site -packages/awkward/array/base.py”,第 394 行,在 _util_toarray 中返回 cls.numpy。数组(值,复制=假)文件“/home/jwkim/anaconda3/lib/python3.8/site-packages/awkward1/highlevel.py”,第 1310 行,在数组 返回尴尬1._connect._numpy.convert_to_array(self._layout,args,kwargs)文件“/home/jwkim/anaconda3/lib/python3.8/site-packages/awkward1/_connect/_numpy.py”,第16行,在convert_to_array 输出 = 尴尬1.operations.convert.to_numpy(layout, allow_missing=False) 文件“/home/jwkim/anaconda3/lib/python3.8/site-packages/awkward1/operations/convert.py”,第 313 行,在 to_numpy return to_numpy(array.toRegularArray(), allow_missing=allow_missing) ValueError: in ListOffsetArray64, cannot convert to RegularArray because subarray lengths are not regular
---------------------- ----------------------------> ##

似乎“uproot_method”只支持笨拙的.array.jagged.JaggedArray。
有没有其他方法可以在 uproot4 (尴尬的高级数组)中使用 TLorentz 向量?

我正在尝试将此基于 uproot3 和笨拙0 的代码转换为基于 uproot4 和笨拙1 的代码。
https://github.com/JW-corp/J.W_Analysis/blob/main/Uproot/anal.py

谢谢你!

0 投票
1 回答
68 浏览

numba - 如何在咖啡框架中使用带有布尔值的 Numba?

错误信息 ##############################

TypingError:在 nopython 模式管道中失败(步骤:nopython 前端)解析“$112binary_subscr.7”的属性“isScEtaEE”类型时出现内部错误。模块“numba”没有属性“bool”期间:在 (19) 处键入 get 属性以在调试级别启用日志记录以获取详细信息。文件“”,第 19 行:def make_vid_plot(Photon):
print(Photon[eventIdx][phoIdx].isScEtaEE) # isEcEtaEE 是布尔值 ^

###########################

我正在将 numba 与 Coffea 一起使用,但是,带有布尔值的 Numba 现在似乎正在工作。
如何解决这个错误?

numba 版本:0.51.2

谢谢

0 投票
1 回答
32 浏览

machine-learning - 为 BDT 使用笨拙的 1.Array

我想为我的分析实现一个增强的决策树。但是我的数组包含的条目长度不同,因此该数组不能直接转换为 numpy 或 pandas。

有什么方法可以使用带有尴尬数组的现有 ML 库?

0 投票
1 回答
507 浏览

python-3.x - 导入尴尬的数组包的问题:导入_ext时DLL加载失败

我正在尝试awkward在我的 Windows 10 系统中使用。我正在使用 python 3.8.2。安装软件包后,当我导入它时,我收到此 DLL 导入错误。

如何知道缺少哪个 DLL 以及如何减轻它?

0 投票
1 回答
118 浏览

awkward-array - 保存笨拙1数组的最佳方法?

所以回到尴尬的 v0 是可能的;

然后我们可以延迟加载数组

简而言之,有一个由“狗”和“猫”部分组成的数据集。整个数据集保存到磁盘上的一个文件中。即使我没有任何文档,什么数据是狗什么是猫也很明显。Dog 和 cat 加载为尴尬的数组。我可以加载数据并只使用一个部分,而另一部分不会在 ram 中结束。

我正在寻找在尴尬的 v1 中执行此操作的最佳方法。我想满足的要求是;

  • 数据由多个命名部分组成,形状不规则。
  • 一个命名部分中的所有项目具有相同的数据类型,不同的部分可能具有不同的数据类型。
  • 某种延迟加载需要成为可能,将数据位作为笨拙的数组处理而没有整个事情。
  • 理想情况下,零件的名称明确地与每个零件的数据相关联。字典结构对此有好处,但其他东西也可以。
  • 理想情况下,整个数据集从一个文件保存和加载,而不会影响速度。
  • 理想情况下,加载数组时它具有正确的类型,因此在示例中 dog 是一个float数组,而 cat 是一个int数组。

我看了看,awkward1.to_parquet虽然它看起来不错,但似乎只是为了保存一个数组。这不适合保存多种数据类型的需要,而且我不确定如何记录列名。我想我可以转换回笨拙的 v0 并以这种方式保存,但我不确定延迟加载将如何发挥作用。可能是我需要编写一个包装器来做这些事情,这完全没问题,但我想先检查是否有我应该知道的内置内容。

编辑; 给出的答案很好。为了完整起见,我想留下一个使用它的例子;

0 投票
1 回答
41 浏览

parquet - 为什么我们不能将笨拙的数组 `to_parquet` 的扁平列转换?

跟进这个问题;保存笨拙1数组的最佳方法?

保存多列嵌套的尴尬1 数组(长度不同);

不幸的是,这似乎不适用于平面列表。

创建错误;

遇到此错误的原因是什么?

0 投票
1 回答
54 浏览

awkward-array - 如何从尴尬.zip 创建的记录集合中删除字段?

因此,已经使用创建了一个记录集合awkward.zip

我想从我正在使用的集合中删除其中一个记录/字段。我的第一个想法是做del pizza['pineapple'],但这不起作用。我可以;

但我想知道我是否可以做一些更有效的事情。我不是要删除对象pineapple,只是在pizza.

0 投票
1 回答
53 浏览

python - 尴尬1; 如何将数组维度设置为变量?

所以目标是我试图将一些数组保存为镶木地板。我可以使用 python 调试器来达到我的代码中可以保存的点。在我复杂的代码中,它们看起来像;

如果我尝试保存它们不起作用,我得到的错误是

所以我开始在终端里乱来尝试重新创建问题并调试它,但我实际上无法复制它。这是发生的事情;

请注意,尺寸已从 更改1 * 3 * bool1 * var * bool。这似乎是唯一的区别 - 但我似乎无法弄清楚如何控制它?


设法隔离了这个问题,这不是我想的那样。当使用np.newaxis在布尔数组中创建一个新轴,然后尝试保存它时,问题就出现了。

我真的应该知道最好不要在没有先隔离问题的情况下发布问题。为浪费您的时间而道歉。

0 投票
1 回答
86 浏览

python - 将一个元素附加到交错数组的每一行

我正在尝试将 0 添加到锯齿状数组的每一行。我想从

<JaggedArray [[1 2 3] [1 2]]>

<JaggedArray [[1 2 3 0] [1 2 0]]>

所以当我抓住第-1个索引时,我得到0。目前我正在将每一行填充到最大行的长度+ 1,然后用0填充nans,这很有效,但我想知道是否有更好的方法。

我看到有一个类 AppendableArray 有一个 .append() 函数,但我不确定如何在两者之间进行转换。我正在使用笨拙的 0.12.22,并且数据是从根文件中读取的根文件 3.11.0

0 投票
2 回答
103 浏览

python - 在 MultiIndex pandas 数据帧上使用多维索引?

我有一个看起来像这样的多索引熊猫数据框(称为 p_z):

我希望能够根据另一个多维数据框(或 numpy 数组)选择某些行。它看起来像一个 pandas 数据框(称为 tofpid):

我也把它当作一个尴尬的数组,它是一个 (26692, ) 数组(每个条目都有非标准数量的子条目)。这是一个选择 df/array,它告诉 p_z df 要保留哪些行。所以在 p_z 的条目 0 中,它应该保留子条目 0、2、4、5、7 等。

我找不到在熊猫中完成这项工作的方法。我是 pandas 的新手,甚至是 multiindex 的新手;但我觉得应该有办法做到这一点。如果它能够更好地广播,我将在大约 1500 个类似大小的数据帧上执行此操作。如果有帮助,这些数据框来自使用 uproot 导入的 *.root 文件(如果有另一种方法可以在没有 pandas 的情况下做到这一点,我会接受它;但我很想使用 pandas 来保持井井有条)。

编辑:这是一个可重复的示例(由 Jim Pavinski 的回答提供;谢谢!)。

这两个数据帧都是在 uproot 中本地生成的,但这将重现与 uproot 相同的数据帧(使用笨拙的库)。