Source code for RCAIDE.Framework.Core.Arrays
# RCAIDE/Framework/Core/Arrays.py
# ----------------------------------------------------------------------
# Imports
# ----------------------------------------------------------------------
import numpy as np
# ----------------------------------------------------------------------
# Array
# ----------------------------------------------------------------------
array_type = np.ndarray
matrix_type = np.matrixlib.defmatrix.matrix
[docs]
def atleast_2d_col(A):
"""Makes a 2D array in column format
Assumptions:
None
Source:
N/A
Inputs:
A [1-D Array]
Outputs:
A [2-D Array]
Properties Used:
N/A
"""
return atleast_2d(A,'col')
[docs]
def atleast_2d_row(A):
"""Makes a 2D array in row format
Assumptions:
None
Source:
N/A
Inputs:
A [1-D Array]
Outputs:
A [2-D Array]
Properties Used:
N/A
"""
return atleast_2d(A,'row')
[docs]
def atleast_2d(A,oned_as='row'):
"""ensures A is an array and at least of rank 2
Assumptions:
Defaults as row
Source:
N/A
Inputs:
A [1-D Array]
Outputs:
A [2-D Array]
Properties Used:
N/A
"""
# not an array yet
if not isinstance(A,(array_type,matrix_type)):
if not isinstance(A,(list,tuple)):
A = [A]
A = np.array(A)
# check rank
if A.ndim < 2:
# expand row or col
if oned_as == 'row':
A = A[None,:]
elif oned_as == 'col':
A = A[:,None]
else:
raise Exception("oned_as must be 'row' or 'col' ")
return A