<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def h3(data, *args, **kwargs):
 """Facade function to create 3D histograms. Parameters data : array_like or list[array_like] or tuple[array_like] Can be a single array (with three columns) or three different arrays (for each component) Returns ------- physt.histogram_nd.HistogramND """

    import numpy as np

    if data is not None and isinstance(data, (list, tuple)) and not np.isscalar(data[0]):
        if "axis_names" not in kwargs:
            kwargs["axis_names"] = [(column.name if hasattr(column, "name") else None) for column in data]
        data = np.concatenate([item[:, np.newaxis] for item in data], axis=1)
    else:
        kwargs["dim"] = 3    
    return histogramdd(data, *args, **kwargs)