根据另一个numpy数组选择numpy数组中的行/列(性能)

2024-06-06 06:33:58 发布

您现在位置:Python中文网/ 问答频道 /正文

我有两个NumPy数组。在我的例子中,Y包含一个输出,P这个输出是正确的概率。行和列的形式是(outputs,noOfAnswers)或(probability,noOfAnswers)。因此,总的来说,产出要比无业者大得多。在

我选择关于P的两个最重要的结果:

chooseThem = np.argpartition(P,-2,axis=1)[:,-2:]

现在我想创建一个新的数组YP,其大小为(outputs,2),只包含chooseThem指定的值。对于for循环,这很简单,但是性能不好。在

下面是一些人工数组的“坏方法”示例:

^{pr2}$

有人建议快速创建这个新数组吗?


Tags: numpynp数组概率outputs形式例子probability
1条回答
网友
1楼 · 发布于 2024-06-06 06:33:58

这适用于分割阵列

dex = np.array([np.arange(1000),np.arange(1000)]).T
YNew = Y[dex,biggest2]

进行一些测试(旧=循环方法新=索引方法)

1000行

^{pr2}$

100000行

%timeit new(Y,P,100000,biggest2)
100 loops, best of 3: 4.49 ms per loop

%timeit old(Y,P,100000,biggest2)
10 loops, best of 3: 89.4 ms per loop

相关问题 更多 >