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

Как извлечь элементы из 2 -й массивы Numpy, используя индексы из другого массива?

Опубликовано в 2025-03-25
Просматривать:641

How to Extract Elements from a 2D NumPy Array Using Indices from Another Array?

Извлечение элементов из 2 -й массивы с использованием индексов из другого массива

В Numpy иногда становится необходимым для извлечения определенных элементов из многомерного массива на основе индексов, хранящихся в другом уборе. Этот сценарий часто возникает при работе со структурами данных, такими как разреженные матрицы или индексированные выборы.

:

рассмотрим два массива numpy:

A = np.array([[0, 1], [2, 3], [4, 5]])
B = np.array([[1], [0], [1]])  # Index array

цель состоит в том, чтобы извлечь один элемент из каждой строки a, где конкретный элемент определяется индексом в соответствующем ряду B. [5]])

C = np.array([[1], [2], [5]])
solutions:

1. Чиковое целочисленное массив Индексирование:

a [np.arange (a.shape [0]), b.ravel ()]

A[np.arange(A.shape[0]), B.ravel()]

2. Транспонировать и np.choose:

np.choose (b.ravel (), a.t)

np.choose(B.ravel(), A.T)

*a = a.t C = np.array ([*Zip (*a)] [i] для i в b.ravel ())

Этот метод использует итерационную распаковку для преобразования в список строк, а затем итерации над рядами A, основанных на индексах в B, чтобы извлечь желаемые элементы. Список понимания и вещания:

*A = A.T
C = np.array([*zip(*A)][i] for i in B.ravel())

list postressions может быть использован для создания новой массивы, а не элементы и B и выполняют элементы. Выбор.

5. Причудливый индексация (numpy> = 1.18):

[A[i][j] for i, j in zip(range(A.shape[0]), B.ravel())]

причудливый индексирование позволяет обеспечивать более эффективные и компактные индексации. В этом случае он создает 2D -массив с индексами строк и индексами B, которые можно использовать для выбора нужных элементов из a.

, наиболее подходящее решение зависит от конкретных требований и ограничений задачи, таких как эффективность, читаемость и совместимость с более старыми версиями Numpy. ]]

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

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

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

Copyright© 2022 湘ICP备2022001581号-3