gpt4 book ai didi

python - 应用时移

转载 作者:行者123 更新时间:2023-12-04 10:21:38 26 4
gpt4 key购买 nike

考虑数组 r ,尺寸为 [N,m],其中 电话 是时间索引,网络中元素的数量。考虑到这些 元素相互连接,但元素的影响在元素 j ,需要一些时间才能发生,即每个连接之间都有延迟矩阵 给出的延迟延迟垫 ,尺寸为 [m,m]。

说,我有以下问题:我想用数组 的值创建一个矩阵 [m,m] r 但在 之后应用了适当的时间筛选(延迟)延迟垫 .一种方法是:

delay  = n - delayMat
drate = np.zeros([m,m])
for i in range(m):
for j in range(m):
drate[j,i]=r[delay[j,i],i]


哪里, 是实际时间索引,用 的延迟值绘制矩阵r 对于每个连接。这是有效的,但是,它非常慢,具体取决于 .有没有办法以更优化的方式在 numpy 上做到这一点?

示例代码(实际代码需要读取大量数据,所以贴在这里不切实际):
import numpy as np 
delayMat = np.random.randint(1,195,[30,30])
rate = np.random.normal(0,1,size=(4,1000,30))
n = 1000 # current time index
delay = n-delayMat
drate1 = np.zeros([30,30]) # delayed variable
drate3 = np.zeros([30,30])
for pre in range(30):
for pos in range(30):
drate1[pos,pre]=rate[0,delay[pos,pre],pre]
drate3[pos,pre]=rate[2,delay[pos,pre],pre]

最佳答案

替换两者 for循环:

drate1=rate[0, delay, np.arange(30)]
drate3=rate[2, delay, np.arange(30)]

关于python - 应用时移,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60821543/

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