import math from SALib.sample import saltelli from SALib.analyze import sobol from SALib.test_functions import Ishigami import numpy as np calc = {'num_vars': 3, 'names': ['X', 'Y', 'Z'], 'bounds': [[0, 1],[0, 1],[0, 1]] } inputs = saltelli.sample(calc, 10000) outputs = np.empty([inputs.shape[0]]) for i, var in enumerate(inputs): outputs[i] = (var[0]+var[0]+(var[1]*var[0])+(2*var[2])) Si = sobol.analyze(calc, outputs) print(Si['S1']) print(Si['ST'])