Skip to content

Commit

Permalink
Fix random_integers deprecation
Browse files Browse the repository at this point in the history
  • Loading branch information
tupui committed Sep 24, 2019
1 parent 51c52f8 commit e246967
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 14 deletions.
25 changes: 15 additions & 10 deletions scipy/stats/qmc.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,15 @@
"""


from __future__ import division

import copy
import numpy as np
from scipy.optimize import brute

try:
from scipy.optimize import basinhopping

have_basinhopping = True
except ImportError:
have_basinhopping = False
Expand Down Expand Up @@ -109,10 +110,10 @@ def update_discrepancy(x_new, sample, initial_disc, bounds=None):
n_samples = len(sample) + 1
abs_ = abs(x_new - 0.5)

disc1 = - 2 / n_samples * np.prod(1 + 1/2 * abs_ - 1/2 * abs_ ** 2)
disc2 = 2 / (n_samples ** 2) * np.sum(np.prod(1 + 1/2 * abs_ +
1/2 * abs(sample - 0.5) -
1/2 * abs(x_new - sample),
disc1 = - 2 / n_samples * np.prod(1 + 1 / 2 * abs_ - 1 / 2 * abs_ ** 2)
disc2 = 2 / (n_samples ** 2) * np.sum(np.prod(1 + 1 / 2 * abs_ +
1 / 2 * abs(sample - 0.5) -
1 / 2 * abs(x_new - sample),
axis=1))
disc3 = 1 / (n_samples ** 2) * np.prod(1 + abs_)

Expand Down Expand Up @@ -167,10 +168,14 @@ def perturb_discrepancy(sample, i1, i2, k, disc, bounds=None):
z_ij = sample - 0.5

# Eq (19)
c_i1j = 1. / n_samples ** 2. * np.prod(0.5 * (2. + abs(z_ij[i1, :]) + \
abs(z_ij) - abs(z_ij[i1, :] - z_ij)), axis=1)
c_i2j = 1. / n_samples ** 2. * np.prod(0.5 * (2. + abs(z_ij[i2, :]) + \
abs(z_ij) - abs(z_ij[i2, :] - z_ij)), axis=1)
c_i1j = 1. / n_samples ** 2. * np.prod(0.5 * (2. + abs(z_ij[i1, :]) +
abs(z_ij) -
abs(z_ij[i1, :] - z_ij)),
axis=1)
c_i2j = 1. / n_samples ** 2. * np.prod(0.5 * (2. + abs(z_ij[i2, :]) +
abs(z_ij) -
abs(z_ij[i2, :] - z_ij)),
axis=1)

# Eq (20)
c_i1i1 = (1. / n_samples ** 2 * np.prod(1 + abs(z_ij[i1, :])) -
Expand Down Expand Up @@ -470,7 +475,7 @@ def latin_hypercube(dim, n_samples, bounds=None, centered=False):
else:
r = np.random.random_sample((n_samples, dim))

q = np.random.random_integers(low=1, high=n_samples, size=(n_samples, dim))
q = np.random.randint(low=1, high=n_samples, size=(n_samples, dim))

sample = 1. / n_samples * (q - r)

Expand Down
8 changes: 4 additions & 4 deletions scipy/stats/tests/test_qmc.py
Original file line number Diff line number Diff line change
Expand Up @@ -82,13 +82,13 @@ def test_lhs(self):
corners = np.array([[0, 2], [10, 5]])

sample = qmc.latin_hypercube(dim=2, n_samples=5, bounds=corners)
out = np.array([[5.746, 3.219], [5.479, 3.261], [9.246, 4.798],
[9.097, 4.495], [9.753, 4.074]])
out = np.array([[5.7, 3.2], [5.5, 3.9], [5.2, 3.6],
[5.1, 3.3], [5.8, 4.1]])
npt.assert_almost_equal(sample, out, decimal=1)

sample = qmc.latin_hypercube(dim=2, n_samples=5, centered=True)
out = np.array([[0.3, 0.9], [0.7, 0.7], [0.1, 0.9],
[0.5, 0.5], [0.1, 0.7]])
out = np.array([[0.1, 0.5], [0.3, 0.1], [0.7, 0.1],
[0.1, 0.1], [0.3, 0.7]])
npt.assert_almost_equal(sample, out, decimal=1)

def test_orthogonal_lhs(self):
Expand Down

0 comments on commit e246967

Please sign in to comment.