gpt4 book ai didi

python - 在没有循环的情况下在数组中累加数字。 (Python)

转载 作者:太空宇宙 更新时间:2023-11-04 08:39:04 26 4
gpt4 key购买 nike

所以我有一个(看似)简单的问题,我目前正在通过 for 循环解决这个问题。

基本上,我想递增 numpy 矩阵中的特定单元格,但如果可能的话,我想在没有 for 循环的情况下进行。

要提供更多详细信息:我有 100 x 100 numpy 矩阵,X。我还有一个 2x1000 numpy 矩阵 PP 只是将索引存储到 X 中,例如,P 的每一列都有我想要的单元格的行列索引在 X 中递增。

我现在做的是:

for p in range(P.shape[1]):
X[P[0,p], P[1,p]] += 1

我的问题是,有没有不用 for 循环的方法?

谢谢!

最佳答案

使用 at add ufunc 的方法 advanced indexing :

numpy.add.at(X, (P[0], P[1]), 1)

或者如果 P 保证永远不会两次选择 X 的相同单元格,则只是高级索引:

X[P[0], P[1]] += 1

关于python - 在没有循环的情况下在数组中累加数字。 (Python),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46203077/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com