将一个元素附加到锯齿状数组的每一行

append an element to every row of a jagged array

我正在尝试向 jagged array 的每一行添加一个 0。 我想从

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

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

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

我看到有一个 class AppendableArray 具有 .append() 函数,但我不确定如何在两者之间进行转换。 我用的是笨拙的 0.12.22,数据是从 root 文件中读出的 uproot 3.11.0

也许这个答案太短了,但是

  1. 升级到 Awkward 1.x(您仍然可以导入 awkward0 并使用 ak.from_awkward0ak.to_awkward0 在同一过程中来回)。
  2. 创建一个单项列表数组,也许在 NumPy (ak.from_numpy) 中,也许通过使用 np.newaxis.
  3. 对一维数组进行切片
  4. 使用 ak.concatenateaxis=1 将它与您的其他数组连接起来。第一个维度需要相同(两个数组的 len 必须相等),但第二个维度不受约束。