#python #arrays #numpy
Вопрос:
Учитывая два массива numpy ( X_test
и y_test
соответственно), такие как:
[[-1.66666667 0. -1.66666667 ... -1.66666667 -1.66666667 3.13324923] [-0.33333333 0. -0.33333333 ... -0.33333333 -0.33333333 0.23389657] [ 0.33333333 0. 0.33333333 ... 0.33333333 0.33333333 0.52919895] ... [-0.33333333 0. -0.33333333 ... -0.33333333 -0.33333333 0.16159571] [ 0.66666667 0. 0.66666667 ... 0.66666667 0.66666667 -0.84551518] [-1.33333333 0. -1.33333333 ... -1.33333333 -1.33333333 -0.03224152]]
[[0 0 1 0 0 0 0] [1 0 0 0 0 0 0] [0 1 0 0 0 0 0] ... [0 1 0 0 0 0 0] [0 0 0 0 0 1 0] [1 0 0 0 0 0 0]]
Я хочу выбрать случайные строки из каждого из двух массивов numpy X_test
и y_test
указать, где индексы совпадают , так как они взяты из тестового набора данных. Результат будет таким, что каждая строка из y_test
будет равна каждой из строк в order
массиве, так что результирующие массивы для нового набора тестов будут соответствовать порядку:
order = [ [1, 0, 0, 0, 0, 0, 0], [1, 0, 0, 0, 0, 0, 0], [1, 0, 0, 0, 0, 0, 0] ]
ИЗМЕНИТЬ: Форма X_test такова (16659, 24)
. В настоящее время я пытаюсь преобразовать оба массива numpy в фрейм данных, такой как:
X_test_df = pd.DataFrame(data=X_test[0:,0:], index=[i for i in range(X_test.shape[0])]) # , columns=['f' str(i) for i in range(data.shape[1])]) y_test_df = pd.DataFrame(data=y_test[0:,0:], index=[i for i in range(y_test.shape[0])]) # , columns=['f' str(i) for i in range(data.shape[1])])
а затем найдите случайную строку, для y_test
которой соответствует каждая строка в order
:
final_y = pd.concat([y_test_df[(y_test_df == k).any()].sample(1) for k in order])
Для примера ожидаемого результата давайте предположим, что случайно выбранные индексы, соответствующие строкам в order
from y_test
, являются 2, 15, 38
. Затем это изменит массивы X_test
и y_test
numpy, чтобы они включали только данные для индексов 2, 15, 38
.
Комментарии:
1. вы сначала говорите «случайный», затем говорите какой-то порядок, и вы вообще не показываете никаких попыток
2. определять
where the indices match
. x_test усекается в обоих измерениях, какова его форма?3. Я обновил операцию, чтобы рассмотреть оба комментария.
4. Этот вопрос меня смущает. Можете ли вы добавить образец ожидаемого результата?
5. @user17242583 объясняет ли обновленный ОП лучше?