Numo::Random provides random number generation with several distributions for Numo::NArray.
Add this line to your application's Gemfile:
gem 'numo-random'
And then execute:
$ bundle install
Or install it yourself as:
$ gem install numo-random
An example of generating random numbers according to the standard normal distribution:
require 'numo/narray'
require 'numo/gnuplot'
require 'numo/random'
# Creating random number generator.
rng = Numo::Random::Generator.new(seed: 42)
# Generating random numbers with a normal distribution.
x = rng.normal(shape: [5000, 2], loc: 0.0, scale: 1.0)
# Plotting the generated result.
Numo.gnuplot do
set(terminal: 'png')
set(output: 'normal2d.png')
plot(x[true, 0], x[true, 1])
end
An example of generating random numbers according to the Poisson distribution:
require 'numo/narray'
require 'numo/gnuplot'
require 'numo/random'
# Creating random number generator.
rng = Numo::Random::Generator.new(seed: 9)
# Generating random numbers with Poisson distribution.
x = rng.poisson(shape: 10000, mean: 12)
# Plotting the generated result.
h = x.bincount
Numo.gnuplot do
set(terminal: 'png')
set(output: 'poisson2d.png')
plot(h, with: 'boxes')
end
Bug reports and pull requests are welcome on GitHub at https://github.com/yoshoku/numo-random. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the code of conduct.
The gem is available as open source under the terms of the Apache-2.0 License.