Мой набор данных на самом деле массивен, но я представляю небольшой набор данных:
array = np.zeros((2,2))
row = set([12,20])
column = {0:{10,14}, 1:{11,12}}
Мой текущий код работает, но он очень медленный для моего массивного набора данных:
c=0
for col in column.values():
r=0
for row in rows:
if row in column:
array[r,s] = 1
r+=1
s+=1
print(array)
output:
[[0. 1.]
[0. 0.]]
Это вывод, который я хочу, но опять же, этот вложенный цикл слишком медленный для массивного набора данных.Я читал, что numpy.where () может выполнять аналогичные операции НАМНОГО быстрее.Возможно, я использую неправильную функцию numpy для этого, или, возможно, нет решения numpy, но моя текущая функция numpy.where () с ключевым словом «in» выглядит так:
array = np.where(row in column, 1, 0)
output:
array(0)
Этот вывод в значительной степени указывает на то, что я далек от ответа.Я пробовал индексировать, писать сценарии для набора и типа словаря, и бросил все, кроме кухонной раковины, но я далеко.Есть ли эффективный способ сделать это с помощью numpy.where () или другой функции numpy?Возможно, использование другого типа данных будет работать?