“”"
def _resample_data(X, y, N):
"""Limit sampling to N instances per class."""
if N > 0:
# Split labels into set of indexes for each class
class_idxs = [np.where(y == c)[0] for c in np.unique(y)]
# Shuffle each of sets of indexes
[np.random.shuffle(i) for i in class_idxs]
# Take N indexes, or fewer if total is less than N
subset_idx = [i[:N] if len(i) >= N else i for i in class_idxs]
# Use advanced indexing to get subsets of X and y
idxs = np.array(subset_idx).ravel()
np.random.shuffle(idxs)
X, y = X[idxs], y[idxs]
return X, y
X,y = {},{}
tgt_num = 100
X[‘tgt’], y[‘tgt’] = _resample_data(tgt_X, tgt_y, tgt_num)
“”"
/usr/local/lib/python3.7/dist-packages/ipykernel_launcher.py:15: VisibleDeprecationWarning: Creating an ndarray from ragged nested sequences (which is a list-or-tuple of lists-or-tuples-or ndarrays with different lengths or shapes) is deprecated. If you meant to do this, you must specify ‘dtype=object’ when creating the ndarray
from ipykernel import kernelapp as app
IndexError Traceback (most recent call last)
in ()
1 X,y = {},{}
2 tgt_num = 100
----> 3 X[‘tgt’], y[‘tgt’] = _resample_data(tgt_X, tgt_y, tgt_num)
in _resample_data(X, y, N)
15 idxs = np.array(subset_idx).ravel()
16 np.random.shuffle(idxs)
—> 17 X, y = X[idxs], y[idxs]
18
19 return X, y
IndexError: arrays used as indices must be of integer (or boolean) type