def ica(pArray, iComponents=1):
    """
	Input: N x D matrix 
	Output: D x N matrix 
	
	"""
    from sklearn.decomposition import FastICA
    try:
        iRow, iCol = pArray.shape
        pICA = FastICA(n_components=iComponents)
        return pICA.fit_transform(pArray.T).T
    except ValueError:
        iRow = pArray.shape
        iCol = None
        return pArray
