def _init_data(self, data, copy, dtype, **kwargs):
if data is None:<EOL><INDENT>data = {}<EOL><DEDENT>if dtype is not None:<EOL><INDENT>dtype = self._validate_dtype(dtype)<EOL><DEDENT>passed_axes = [kwargs.pop(a, None) for a in self._AXIS_ORDERS]<EOL>if kwargs:<EOL><INDENT>raise TypeError('<STR_LIT>'<EOL>'<STR_LIT>'.format(list(kwargs.keys())[<NUM_LIT:0>]))<EOL><DEDENT>axes = None<EOL>if isinstance(data, BlockManager):<EOL><INDENT>if com._any_not_none(*passed_axes):<EOL><INDENT>axes = [x if x is not None else y<EOL>for x, y in zip(passed_axes, data.axes)]<EOL><DEDENT>mgr = data<EOL><DEDENT>elif isinstance(data, dict):<EOL><INDENT>mgr = self._init_dict(data, passed_axes, dtype=dtype)<EOL>copy = False<EOL>dtype = None<EOL><DEDENT>elif isinstance(data, (np.ndarray, list)):<EOL><INDENT>mgr = self._init_matrix(data, passed_axes, dtype=dtype, copy=copy)<EOL>copy = False<EOL>dtype = None<EOL><DEDENT>elif is_scalar(data) and com._all_not_none(*passed_axes):<EOL><INDENT>values = cast_scalar_to_array([len(x) for x in passed_axes],<EOL>data, dtype=dtype)<EOL>mgr = self._init_matrix(values, passed_axes, dtype=values.dtype,<EOL>copy=False)<EOL>copy = False<EOL><DEDENT>else:  <EOL><INDENT>raise ValueError('<STR_LIT>')<EOL><DEDENT>NDFrame.__init__(self, mgr, axes=axes, copy=copy, dtype=dtype)<EOL>
Generate ND initialization; axes are passed
as required objects to __init__.