Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
elif (isinstance(corrs, np.ndarray) and corrs.ndim == 1) or isinstance(corrs, list):
assert (
len(corrs) == (num_features * (num_features - 1)) / 2
), "(num_features * (num_features - 1) / 2) correlation values are required for a flattened array or list"
corrs = squareform(corrs)
np.fill_diagonal(corrs, 1.0)
elif isinstance(corrs, float):
corrs = np.array([corrs] * int(((num_features * (num_features - 1)) / 2)))
corrs = squareform(corrs)
np.fill_diagonal(corrs, 1.0)
else:
raise ValueError(
"Correlations must be num_features x num_feature, flattend numpy array/list or scalar"
)
if not isPSD(corrs):
if forcePSD:
# Tell user their correlations are being recomputed if they didnt ask to save them as they might not realize
if not return_new_corrs:
print(
"Correlation matrix is not positive semi-definite. Solved for new correlation matrix."
)
_corrs = np.array(nearestPSD(corrs, nit))
else:
raise ValueError(
"Correlation matrix is not positive semi-definite. Pymer4 will not generate inaccurate multivariate data. Use the forcePD argument to automatically solve for the closest desired correlation matrix."
)
else:
_corrs = corrs
# Rescale correlation matrix by variances, given standard deviations of features