У меня есть следующие два numpy массива X
и y
:
X:
array([2, 1, 2, 1, 1, 1, 3, 2, 2, 1, 1, 3, 3, 3, 1, 1, 1, 1])
y:
array([1, 1, 1, 1, 1, 2, 3, 2, 2, 3, 3, 1, 2, 2, 4, 4, 4, 4])
Всего: 4
уникальные значения y
: 1, 2, 3 и 4.
Мне нужно извлечь batch_size
записей из X
и y
таким образом, чтобы все уникальные значения выбираются в y
хотя бы один раз.
Например, если batch_size
равно 6, то результат y
может быть:
1, 1, 2, 3, 3, 4 # CORRECT !
Соответствующий X
значения должны быть выбраны.
У меня есть следующая функция, но она может вернуть batch_s
, которая, например, содержит только значения 1 и 2, но не содержит 3 и 4:
1, 1, 2, 1, 2, 1 # WRONG !
Моя функция :
def extract_batch_size(myarr, step, batch_size):
# Function to fetch a "batch_size" amount of data from "myarr" data.
shape = list(myarr.shape)
shape[0] = batch_size
batch_s = np.empty(shape)
for i in range(batch_size):
# Loop index
index = ((step-1)*batch_size + i) % len(myarr)
batch_s[i] = myarr[index]
return batch_s
Вот как я называю эту функцию:
X_result = extract_batch_size(X, 1, 6)
y_result = extract_batch_size(y, 1, 6)