私はRの背景から来ていて、今はPythonを学ぼうとしています。現時点では、私は例えばR.に行うために使用Pythonでいくつかの計算を行う方法で探しています、私はPythonのベクトルの床の値の合計を取得する
ような何かを行うことができ、合計 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))
と書くとよいでしょう。
http://pythoncentral.io/pythons-range-function-explained/ここでさらに読むために – voiDnyx
ただ、ノート内ではベクトル化されているので、 'のために'または 'サプリー'が必要です。 Pythonのソリューションと同様に、 'dat = sum(floor(sqrt(x)/ 10))'を実行することができます。 – Gregor
注目、@ Gregor。 – hpesoj626