python numpy hstack() from shape_base.py(配列を水平に積み重ねます)

3681 ワード

def hstack(tup):
    """
    Stack arrays in sequence horizontally (column wise).
      (  )      。

    This is equivalent to concatenation along the second axis, except for 1-D
    arrays where it concatenates along the first axis. Rebuilds arrays divided
    by `hsplit`.
                ,              。     “ hsplit”   。

    This function makes most sense for arrays with up to 3 dimensions. For
    instance, for pixel-data with a height (first axis), width (second axis),
    and r/g/b channels (third axis). The functions `concatenate`, `stack` and
    `block` provide more general stacking and concatenation operations.
          3        。 
      ,      (   ),  (   ) r / g / b  (   )     。 
      concatenate,stack block              。

    Parameters
    ----------
    tup : sequence of ndarrays
        The arrays must have the same shape along all but the second axis,
        except 1-D arrays which can be any length.
        ndarray   
               ,            ,             。

    Returns
    -------
    stacked : ndarray
        The array formed by stacking the given arrays.
      :ndarray
                      。

    See Also
    --------
    stack : Join a sequence of arrays along a new axis.
    		          。
    vstack : Stack arrays in sequence vertically (row wise).
    		   ( )       。
    dstack : Stack arrays in sequence depth wise (along third axis).
    		      (    )       。
    concatenate : Join a sequence of arrays along an existing axis.
    			             。
    hsplit : Split array along second axis.
    		          。
    block : Assemble arrays from blocks.
    		      。

    Examples
    --------
    >>> a = np.array((1,2,3))
    >>> b = np.array((2,3,4))
    >>> np.hstack((a,b))
    array([1, 2, 3, 2, 3, 4])
    >>> a = np.array([[1],[2],[3]])
    >>> b = np.array([[2],[3],[4]])
    >>> np.hstack((a,b))
    array([[1, 2],
           [2, 3],
           [3, 4]])

    """
    arrs = [atleast_1d(_m) for _m in tup]
    # As a special case, dimension 0 of 1-dimensional arrays is "horizontal"
    if arrs and arrs[0].ndim == 1:
        return _nx.concatenate(arrs, 0)
    else:
        return _nx.concatenate(arrs, 1)