我来自R背景,现在正在尝试学习Python。目前,我正在研究如何在R中使用Python进行一些计算。例如,求和

python - 在Python中获取向量的底值之和-LMLPHP

在R中,我可以做类似的事情

x <- 1:2015
dat <- rep(NA, times = 2015)
for (i in x){
  dat[i] <- floor(sqrt(i) / 10)
}
dat
sum(dat)


要么

dat <- sapply(x, function(i) floor(sqrt(i) / 10))
sum(dat)


给出正确答案5064。

但是,下面的Python代码给了我5060.0。

import pandas as pd
import numpy as np
sum(np.floor(np.sqrt(range(1,2015)) / 10))


我究竟做错了什么?

编辑:如Gregor所建议,R代码可以更好地编写为sum(floor(sqrt(x) / 10))

最佳答案

在python中,如文档中所述,range(a,b)生成器提供了从ab-1的可迭代。要获得这样的总和,jou需要range(1, 2016)

08-07 16:21
查看更多