Я не могу понять, почему я получаю дубликат индекса для соответствующего подсписка - PullRequest
0 голосов
/ 21 апреля 2020

Что я пытаюсь сделать, так это выбрать самый быстрый маршрут, чтобы пометить каждый индекс подсписка внутри определенного c суперсписка.

import numpy as np

l1 = [['a', 'b'], ['c', 'd'], ['a', 'b'], ['a', 'b']]
l2 = ['a', 'b']
a = np.array(l1)
b = np.array(l2)

x = np.where(a == b)[0]
print(x)

выход:

[0 0 2 2 3 3]

1 Ответ

1 голос
/ 21 апреля 2020

, поскольку вы получаете только первый элемент выходных данных [0], a - это двумерный массив, и на выходе есть 2 индекса "для положения строки и столбца"

import numpy as np

l1 = [['a', 'b'], ['c', 'd'], ['a', 'b'], ['a', 'b']]
l2 = ['a', 'b']
a = np.array(l1)
b = np.array(l2)

x,y = np.where(a == b)
a[x,y]
array(['a', 'b', 'a', 'b', 'a', 'b'], dtype='<U1')

, если вы sh чтобы сравнить их с массивом, вы должны l oop до a

x = np.where([np.array_equal(i,b) for i in a])[0]
x
array([0, 2, 3], dtype=int64)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...