Eliminate FutureWarning: Series.base is deprecated (#4337)

* Remove all references to data.base

Should eliminate the deprecation warning in issue #4300

* Fix lint
This commit is contained in:
Marcos 2019-07-05 00:06:23 -04:00 committed by Philip Hyunsu Cho
parent d9a47794a5
commit 562d9ae963

View File

@ -584,9 +584,7 @@ class DMatrix(object):
data: numpy array
The array of data to be set
"""
if getattr(data, 'base', None) is not None and \
data.base is not None and isinstance(data, np.ndarray) \
and isinstance(data.base, np.ndarray) and (not data.flags.c_contiguous):
if isinstance(data, np.ndarray):
self.set_float_info_npy2d(field, data)
return
c_data = c_array(ctypes.c_float, data)
@ -607,14 +605,16 @@ class DMatrix(object):
data: numpy array
The array of data to be set
"""
if getattr(data, 'base', None) is not None and \
data.base is not None and isinstance(data, np.ndarray) \
and isinstance(data.base, np.ndarray) and (not data.flags.c_contiguous):
try:
if not data.flags.c_contiguous:
warnings.warn("Use subset (sliced data) of np.ndarray is not recommended " +
"because it will generate extra copies and increase memory consumption")
"because it will generate extra copies and increase " +
"memory consumption")
data = np.array(data, copy=True, dtype=np.float32)
else:
data = np.array(data, copy=False, dtype=np.float32)
except AttributeError:
data = np.array(data, copy=False, dtype=np.float32)
c_data = data.ctypes.data_as(ctypes.POINTER(ctypes.c_float))
_check_call(_LIB.XGDMatrixSetFloatInfo(self.handle,
c_str(field),
@ -632,14 +632,16 @@ class DMatrix(object):
data: numpy array
The array of data to be set
"""
if getattr(data, 'base', None) is not None and \
data.base is not None and isinstance(data, np.ndarray) \
and isinstance(data.base, np.ndarray) and (not data.flags.c_contiguous):
try:
if not data.flags.c_contiguous:
warnings.warn("Use subset (sliced data) of np.ndarray is not recommended " +
"because it will generate extra copies and increase memory consumption")
"because it will generate extra copies and increase " +
"memory consumption")
data = np.array(data, copy=True, dtype=ctypes.c_uint)
else:
data = np.array(data, copy=False, dtype=ctypes.c_uint)
except AttributeError:
data = np.array(data, copy=False, dtype=ctypes.c_uint)
_check_call(_LIB.XGDMatrixSetUIntInfo(self.handle,
c_str(field),
c_array(ctypes.c_uint, data),