pythonを使う

  • ひさしぶりにとほほさんのお世話になる(こちら)
  • ベクトル演算
n = 4
a = range(1,n+1)
a = 1:n
import math
math.exp(reduce(add,[math.log(x) for x in a]))
map(math.exp,(map(log,a)))
math.factorial(a[-1])
  • ライブラリ・パッケージの関数
# library(math) # Rではlibrary(math)としなくても、math::hoge として関数を呼び出せるし、library(math)とすれば、hogeという関数をmathと書かずに使える
# それに対応するのはpython では import math * として、math ライブラリの関数のすべてのimport
# もしくは from math import exp, log, factorialのようにして、特定の関数のみを使用可能にすること
exp(sum(log(a))) # Rはベクトル演算が基本だから、python のベクトル演算関数 map, reduceなどは使わずにできる
exp(log(a))
factorial(a[length(a)])
  • 結果、pythonは誤差が出ている…
  • それを回避するためにmathライブラリのfsum()関数を使う
import math
math.exp(math.fsum(map(log,a)))


map(lambda x: x%2, a)
filter(lambda x: x%2, a)
a%%2
a[which(a%%2==1)]
  • ベクトル同士の演算
a = [1,2,3]
b = [4,5,6]
[a[i] + b[i] for i in range(len(a))]
[5, 7, 9]
a = 1:3
b = 4:6
a+b
[x * y for x in a for y in b]
python

[4, 5, 6, 8, 10, 12, 12, 15, 18]
|