Source code for cosmo_utils.utils.gen_utils
#! /usr/bin/env python
# -*- coding: utf-8 -*-
# Victor Calderon
# Created : 2018-05-31
# Last Modified: 2018-05-31
from __future__ import absolute_import, division, print_function
__author__ = ['Victor Calderon']
__copyright__ = ["Copyright 2018 Victor Calderon"]
__email__ = ['victor.calderon@vanderbilt.edu']
__maintainer__ = ['Victor Calderon']
__all__ = ["reshape_arr_1d"]
"""
General tools for a day-to-day use.
"""
# Import modules
import numpy as np
from cosmo_utils.utils import file_utils as fd
from cosmo_utils.custom_exceptions import LSSUtils_Error
# Functions
[docs]def reshape_arr_1d(arr):
"""
Transforms the array intoa 1-dimensional array, if necessary.
Parameters
-----------
arr : `numpy.ndarray` or array-like
Array to be converted into 1-dimensional array.
Returns
-----------
arr_new : `numpy.ndarray` or array-like
Converted array into 1-dimensional array if needed.
"""
file_msg = fd.Program_Msg(__file__)
# Checking input parameters
arr_valid_types = (list, np.ndarray)
# `arr`
if not (isinstance(arr, arr_valid_types)):
msg = '{0} `arr` ({1}) is not a valid input type!'.format(file_msg,
type(arr))
raise TypeError(msg)
# Dimensions
if (isinstance(arr, arr_valid_types)):
if not (np.asarray(arr).ndim in [1, 2]):
msg = '{0} The shape of `arr` ({1}) can only have 1 or 2 '
msg += 'dimensions'
msg = msg.format(file_msg, np.asarray(arr).ndim)
raise LSSUtils_Error(msg)
# Converting to Numpy array
arr = np.asarray(arr)
# Trying to reshape it
if (arr.ndim == 2):
if (arr.shape[1] == 1):
arr = arr.reshape(len(arr),)
return arr