с учетом +1 для класса 1 в качестве метки1 и -1 для класса 2 в качестве метки2:
label1 = np.ones( (r1.shape[0],1) )
label2 = np.ones( (r2.shape[0],1) ) * -1
data = np.concatenate((r1, r2))
labels = np.concatenate((label1, label2))
В случае, если вам необходимо перетасовать данные перед тренировкой и вы хотите отслеживать, какая метка для какого образца, сначала добавьте каждую метку к соответствующим данным:
r1 = np.append(label1, r1, axis=1)
r2 = np.append(label2, r2, axis=1)
data = np.concatenate((r1,r2))
np.random.shuffle(data)
labels = data[:,0] #extracts labels in shape of (len(labels),)which is a rank 1 array
labels = np.reshape(labels,(len(labels),1)) #fix the shape to a 1D array
R = data[:,(1,2)] #extracting inputs