UNPKG

cheap-pandas

Version:

Not a good pandas library to use

107 lines (88 loc) 2.63 kB
exports.toFixed4Digit = (item) => { return item.toFixed(4).replace(/(\.0+$)|(0+$)/g, ""); }; exports.takeNSpace = (item = "", num) => { if (typeof item === "number") item = exports.toFixed4Digit(item); if (item.length + 2 > num) { item = item.substring(0, num - 2); } return `|${" ".repeat( Math.floor((num - item.length) / 2) )}${item}${" ".repeat(Math.ceil((num - item.length) / 2))}`; }; exports.sqrt = (a) => Math.sqrt(a); exports.sq = (a) => Math.pow(a, 2); exports.pow = (a, b) => Math.pow(a, b); exports.getRange = (a, b) => [a - b, a + b]; exports.mean = (arr) => arr.reduce((prev, curr) => prev + curr, 0) / arr.length; exports.variance = (arr) => { let mean = exports.mean(arr); let cum = 0; for (let i = 0; i < arr.length; i++) { cum += exports.sq(arr[i] - mean); } return cum / (arr.length - 1); }; exports.std = (arr) => Math.sqrt(exports.variance(arr)); exports.div = (a, b, fn) => { if (typeof a === "number" && typeof b === "number") { return a / b; } if (Array.isArray(a) && Array.isArray(b)) { if (a.length !== b.length) throw new Error("Their length must be the same"); let divided_array = []; if (fn) { for (let i = 0; i < a.length; i++) { divided_array[i] = fn(a[i] / b[i]); } } else { for (let i = 0; i < a.length; i++) { divided_array[i] = a[i] / b[i]; } } return divided_array; } return null; }; exports.combination = (n, k) => { let mul = 1; for (let i = n; i > k; i--) { mul *= i; } let other = n - k; for (let i = other; i >= 1; i--) { mul /= i; } return mul; }; exports.binomial = (n, t, p) => exports.combination(n, t) * Math.pow(p, t) * Math.pow(1 - p, n - t); exports.log = (base, argument) => { if (typeof argument === "undefined") { return Math.log(base); } return Math.log(argument) / Math.log(base); }; exports.sum = (arr) => { return arr.reduce((prev, curr) => prev + curr, 0); }; exports.sub = (a, b, fn) => { if (typeof a === "number" && typeof b === "number") { return a - b; } if (Array.isArray(a) && Array.isArray(b)) { if (a.length !== b.length) throw new Error("Their length must be the same"); let subtracted_array = []; if (fn) { for (let i = 0; i < a.length; i++) { subtracted_array[i] = fn(a[i] - b[i]); } } else { for (let i = 0; i < a.length; i++) { subtracted_array[i] = a[i] - b[i]; } } return subtracted_array; } return null; };