繁体   English   中英

R 到 Python 用于循环翻译

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM