HOME


sh-3ll 1.0
DIR:/usr/local/lib64/python3.6/site-packages/pandas/core/reshape/__pycache__/
Upload File :
Current File : //usr/local/lib64/python3.6/site-packages/pandas/core/reshape/__pycache__/util.cpython-36.pyc
3

���h�@s.ddlZddlmZdd�Zed�dd�ZdS)�N)�is_list_likecs�d}t|�st|��x|D]}t|�st|��qWt|�dkrBgStjdd�|D�tjd�}tj|�}tj|d��d�d<|d	dkr�|d
|�n
tj|����fdd�t	|�D�S)a�
    Numpy version of itertools.product.
    Sometimes faster (for large inputs)...

    Parameters
    ----------
    X : list-like of list-likes

    Returns
    -------
    product : list of ndarrays

    Examples
    --------
    >>> cartesian_product([list('ABC'), [1, 2]])
    [array(['A', 'A', 'B', 'B', 'C', 'C'], dtype='<U1'), array([1, 2, 1, 2, 1, 2])]

    See Also
    --------
    itertools.product : Cartesian product of input iterables.  Equivalent to
        nested for-loops.
    z'Input must be a list-like of list-likesrcss|]}t|�VqdS)N)�len)�.0�x�r�:/tmp/pip-build-5_djhm0z/pandas/pandas/core/reshape/util.py�	<genexpr>'sz$cartesian_product.<locals>.<genexpr>)Zdtype�cs0g|](\}}ttj|�|�tj�|���qSr)�_tile_compat�np�repeat�product)r�ir)�a�brr�
<listcomp>3sz%cartesian_product.<locals>.<listcomp>���r)
r�	TypeErrorrrZfromiterZintpZ
cumproductZrollZ
zeros_like�	enumerate)�X�msgrZlenXZcumprodXr)rrr�cartesian_products 


r)�numcCs8t|tj�rtj||�Stjtjt|��|�}|j|�S)zf
    Index compat for np.tile.

    Notes
    -----
    Does not support multi-dimensional `num`.
    )�
isinstancerZndarrayZtileZarangerZtake)ZarrrZtakerrrrr
6sr
)ZnumpyrZpandas.core.dtypes.commonrr�intr
rrrr�<module>s0