gpt4 book ai didi

python - 从邻接表计算邻接矩阵的花式索引

转载 作者:行者123 更新时间:2023-12-05 02:25:32 25 4
gpt4 key购买 nike

问题:

我想在给定邻接列表E_i​​j的情况下多次计算邻接矩阵A_ij,其中E_i​​j[t,i] = j在时间 t 给出从 ij 的边。

我可以用下面的代码来完成:

import numpy as np

nTimes = 100
nParticles = 10
A_ij = np.full((nTimes, nParticles, nParticles), False)
E_ij = np.random.randint(0, 9, (100, 10))

for t in range(nTimes):
for i in range(nParticles):
A_ij[t, i, E_ij[t,i]] = True

问题:

我怎样才能以矢量化的方式做到这一点,既可以使用精美的索引,也可以使用诸如 np.take_along_axis 之类的 numpy 函数?


我尝试了什么:

我希望它能工作:

A_ij[:,np.arange(nParticles)[None,:,None], E_ij[:,None,np.arange(nParticles)]] = True

但事实并非如此。


相关:Trying to convert adjacency list to adjacency matrix in Python

最佳答案

我认为这可能有效:

import numpy as np

nTimes = 100
nParticles = 10
A_ij = np.full((nTimes, nParticles, nParticles), False)
E_ij = np.random.randint(0, 9, (100, 10))

np.put_along_axis(A_ij, E_ij[..., None], True, axis=2)

关于python - 从邻接表计算邻接矩阵的花式索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74519974/

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