class Array
Public Class Methods
from_json(str)
click to toggle source
# File lib/stella/core_ext.rb, line 442 def self.from_json(str) Yajl::Parser.parse(str, :check_utf8 => false) end
Public Instance Methods
deviation()
click to toggle source
# File lib/stella/core_ext.rb, line 412 def deviation ; Math::sqrt( self.variance ) ; end
Also aliased as: sd
dump(format)
click to toggle source
# File lib/stella/core_ext.rb, line 435 def dump(format) respond_to?(:"to_#{format}") ? send(:"to_#{format}") : raise("Unknown format: #{format}") end
histogram()
click to toggle source
# File lib/stella/core_ext.rb, line 404 def histogram ; self.sort.inject({}){|a,x|a[x]=a[x].to_i+1;a} ; end
mean()
click to toggle source
# File lib/stella/core_ext.rb, line 397 def mean; self.sum.to_f/self.size ; end
median()
click to toggle source
# File lib/stella/core_ext.rb, line 398 def median case self.size % 2 when 0 then self.sort[self.size/2-1,2].mean when 1 then self.sort[self.size/2].to_f end if self.size > 0 end
mode()
click to toggle source
# File lib/stella/core_ext.rb, line 405 def mode map = self.histogram max = map.values.max map.keys.select{|x|map[x]==max} end
percentile(perc)
click to toggle source
# File lib/stella/core_ext.rb, line 425 def percentile(perc) self.sort[percentile_index(perc)] end
percentile_index(perc)
click to toggle source
# File lib/stella/core_ext.rb, line 428 def percentile_index(perc) (perc * self.length).ceil - 1 end
permute()
click to toggle source
# File lib/stella/core_ext.rb, line 414 def permute ; self.dup.permute! ; end
permute!()
click to toggle source
# File lib/stella/core_ext.rb, line 415 def permute! (1...self.size).each do |i| ; j=rand(i+1) self[i],self[j] = self[j],self[i] if i!=j end;self end
random()
click to toggle source
# File lib/stella/core_ext.rb, line 422 def random self[rand(self.size)] end
sample(n=1 ;)
click to toggle source
# File lib/stella/core_ext.rb, line 420 def sample n=1 ; (0...n).collect{ self[rand(self.size)] } ; end
squares()
click to toggle source
# File lib/stella/core_ext.rb, line 410 def squares ; self.inject(0){|a,x|x.square+a} ; end
sum()
click to toggle source
# File lib/stella/core_ext.rb, line 396 def sum ; self.inject(0){|a,x| next if x.nil? || a.nil?; x+a} ; end
to_json()
click to toggle source
# File lib/stella/core_ext.rb, line 439 def to_json Yajl::Encoder.encode(self) end
variance()
click to toggle source
# File lib/stella/core_ext.rb, line 411 def variance ; self.squares.to_f/self.size - self.mean.square; end