«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Как эффективно выбирать конкретные индексы столбцов для каждой строки в NumPy?

Как эффективно выбирать конкретные индексы столбцов для каждой строки в NumPy?

Опубликовано 1 ноября 2024 г.
Просматривать:911

How to Efficiently Select Specific Column Indexes per Row in NumPy?

NumPy: эффективный выбор конкретных индексов столбцов для каждой строки

Выбор данных — важнейшая операция в анализе данных. При работе с массивами NumPy выбор определенных столбцов из каждой строки может быть обычной задачей. Этот выбор можно выполнить различными методами, но выбор столбцов на основе списка индексов для каждой строки требует более эффективного подхода.

Использование логических массивов для прямого выбора

Если у вас есть логический массив, указывающий столбцы, которые необходимо выбрать, вы можете использовать прямой выбор для эффективного извлечения нужных значений. Логические массивы можно создавать путем сравнения списка индексов с диапазоном столбцов. Например, учитывая матрицу X и список индексов Y, как описано в вопросе, вы можете создать логический массив b следующим образом:

import numpy as np

X = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
Y = np.array([1, 0, 2])
b = np.arange(X.shape[1])[np.isin(np.arange(X.shape[1]), Y)]

С помощью логического массива b можно выполнить прямой выбор :

result = X[np.arange(X.shape[0]), b]

Этот метод обеспечивает быстрый способ выбрать определенные столбцы на основе логического массива.

Альтернативные методы

В качестве альтернативы вы можете использовать np.arange и прямой выбор на основе списка индексов Y. Этот подход включает в себя создаем массив индексов и соответственно выбираем из матрицы X:

result = X[np.arange(X.shape[0]), Y]

Заключение

Выбор конкретных индексов столбцов для каждой строки в NumPy можно эффективно выполнить с помощью логических массивов . Этот метод обеспечивает быстрый и простой выбор столбцов на основе списка индексов. Для больших массивов данных этот подход обеспечит значительный выигрыш в производительности по сравнению с методами, основанными на итерациях.

Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3