В одномерном массиве «a» найдите индексы «a», в которых «a» = «b», где «b» - случайные значения «a» - PullRequest
0 голосов
/ 08 июля 2019

Это моя первая попытка использовать Python.Буду признателен за любые советы о том, как размещать данные процесса с использованием Python.

У меня есть двумерный массив с двумя столбцами, состоящими из чисел: a и c.Кроме того, у меня есть 1D массив b, который состоит из некоторых (и точных) значений a.Я хочу найти c значений, при которых a == b.Мой подход заключается в том, чтобы найти индексы a, где a == b, а затем использовать b[a_indexes].Я не могу найти индексы.

    'a'    'c'  
     1     20   
     40    70
     83    67
     1054  90

     'b'
      40
      1054

Желаемый вывод:

40 70
1054 90

Я пытался:

a_indexes = a.index(b) 

Но это не работает.

У меня есть эта ошибка:

У объекта 'numpy.ndarray' нет атрибута 'index'

1 Ответ

0 голосов
/ 08 июля 2019

Я думаю, что вы хотите сделать что-то вроде

import numpy as np

arr = np.array([[1, 20],  [40, 70], [83, 67], [1054,90]])
b = np.array([40, 1054])

output = []
for value in b:
    a_indexes = np.where(arr == value)
    for a_index in a_indexes[0]: # we look where the value was found along first dimension
        output.append(arr[a_index])
# output should be [array([40, 70]), array([1054, 90])]
print(output)

Для получения дополнительной информации о проверке индексации Существует ли функция NumPy для возврата первого индекса чего-либо в массиве? илиhttps://thispointer.com/find-the-index-of-a-value-in-numpy-array/

Обратите внимание, что если у вас есть имена столбцов, возможно, вы имеете дело не с чисто массивными массивами, а, возможно, с pandas dataframe или чем-то еще.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...