Skip to content

Instantly share code, notes, and snippets.

@masa16
Created November 9, 2016 10:50
Show Gist options
  • Save masa16/d2bd53c2fe8cb90dd3529e040cce757f to your computer and use it in GitHub Desktop.
Save masa16/d2bd53c2fe8cb90dd3529e040cce757f to your computer and use it in GitHub Desktop.
import time
import numpy as np
def measure(label,ary,repeat):
t = time.time()
for j in range(repeat):
ret = 0
for i in range(len(ary)):
ret += ary[i]
print "%16s: %f"%(label,time.time()-t)
repeat = 10000
size = 1000
ary = [float(i) for i in range(size)]
measure("list",ary,repeat)
npy = np.arange(size,dtype=np.float64)
measure("numpy",npy,repeat)
# $ python aref.py
# list: 0.831798
# numpy: 4.056459
require "numo/narray"
require "benchmark"
def measure(label,ary,repeat)
printf "%16s: %s",label,Benchmark.measure{
repeat.times do
ret = 0
ary.size.times do |i|
ret += ary[i]
end
end
}
end
repeat = 10000
size = 1000
ary = size.times.map{|i| i.to_f}
measure("Array#[]",ary,repeat)
nary = Numo::DFloat.new(size).seq
measure("NArray#[]",nary,repeat)
# $ ruby aref.rb
# Array#[]: 0.740000 0.000000 0.740000 ( 0.749600)
# NArray#[]: 1.100000 0.000000 1.100000 ( 1.101281)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment