我有一个根文件,我想从中提取每个事件的某个候选人。另一方面,我有一个 numpy 数组,其中包含我要提取的候选人的索引。
假设我的根文件有以下分支:
branch = [[8.956237 9.643666] [5.823581] [3.77208 5.6549993] [5.91686] [13.819047 14.108783]]
我想要前 4 个事件的第一个候选者,最后一个事件的第二个,因此,我有以下 numpy 数组:
npMask = array([[0],[0],[0],[0],[1]])
当我将 应用于 时npMask
,branch
结果不是我所期望的:
branch[npMask]
[[[8.956237 9.643666]] [[8.956237 9.643666]] [[8.956237 9.643666]] [[8.956237 9.643666]] [[5.823581]]]
但是,如果我将numpy
数组转换为jagged
数组,它就可以正常工作:
awkMask = awk.fromiter(npMask)
branch[awkMask]
[[8.956237] [5.823581] [3.77208] [5.91686] [14.108783]]
这里的问题是铸造需要太多时间,我正在使用该iterate
方法和 10k entrysteps
,每次迭代需要大约 65% 的时间。
所以,我的问题是:有没有正确的方法使用 numpy 数组作为锯齿状数组的掩码?
笔记
我通过比较三个不同的分支并从这三个分支中选择具有最高值的候选人来创建我的 numpy 数组,例如
compare1 = [[0 -0.1] [0] [0.65 0.55] [0.5] [0.6 0.9]]
compare2 = [[0.99 -0.1] [0.9] [0.45 0.2] [0.5] [0.66 0.99]]
compare3 = [[0.91 0.3] [0.77] [0.5 -0.2] [0.5] [0.87 0.59]]