[英]R to Python for loop translation
我想翻译以下R代码:
k =5
Ret = as.data.frame(sapply(1:k, function(i) rnorm(k) ) )
deltas=NULL
for (i in 1:k) {
y = Ret[,i]
mvalue = mean(y)
minvec = NULL
for (j in 1:length(y))
{
minvechelp = min(0,(y[j]-mvalue))
minvec[j] = minvechelp
}
delta=sqrt(sum(minvec^2)/length(y))
deltas = cbind(deltas,delta)
}
deltas
它实现了数据帧的碰撞均值,然后采用数据帧的长度来计算包含最小计算的参数增量,但我认为 df 已转换为矢量。
在 Python 中,我的努力是:
k= 5
A = pd.DataFrame(
[np.random.randn(k) for i in range(k)]
)
A.size
deltas = []
for i in range(0,k):
y = Ret.iloc[:,i]
mvalue = np.mean(y)
minvec = []
for j in range(0,y.size):
minvechelp = min(0,(y[j]-mvalue))
minvec[j] = minvechelp
delta=np.sqrt(sum(minvec**2)/y.size())
deltas = np.hstack((deltas,delta))
deltas
但我收到一个错误
KeyError: 0
我的错误在哪里,我该如何解决? 有什么帮助吗?
在 Oliver 的评论帮助下,我发现答案是:
mvalue = Ret.mean(axis=0);mvalue
Res = Ret - mvalue;Res
Res[Res>=0] = 0;Res
Res2 = Res**2
cs = Res2.sum(axis=0);cs
delta = np.sqrt(cs/Ret.shape[0])
delta
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.