У меня есть Numpy массив, аналогичного приведенные ниже, который представляет сосед каждого человека (это первое сгенерированный пакет igraph затем преобразуется в Numpy массиваКак избавиться от значений из массива Numpy без цикла?
import numpy as np
import igraph
Edges = 2
NumNodes = 30
DisGraph = igraph.GraphBase.Barabasi(NumNodes, Edges)
Neighbors = map(DisGraph.neighbors, range(NumNodes))
Neighbors = np.asarray(DisNeighbors)
):
Neighbors=[[1, 2, 3, 4, 5, 6, 8, 9, 11, 23, 24, 27]
[0, 2, 3, 4, 9, 10, 13, 16, 17, 19, 25, 27] [0, 1, 10, 22]
[0, 1, 5, 6, 7, 8, 12, 14, 15, 21, 22] [0, 1]
[0, 3, 7, 11, 15, 23, 24, 25, 29] [0, 3] [3, 5, 18] [0, 3, 12, 16, 18]
[0, 1, 13] [1, 2, 14, 20] [0, 5] [3, 8, 19] [1, 9, 21, 28]
[3, 10, 17, 20, 26] [3, 5] [1, 8] [1, 14, 26] [7, 8] [1, 12] [10, 14, 28]
[3, 13] [2, 3] [0, 5] [0, 5] [1, 5] [14, 17] [0, 1, 29] [13, 20] [5, 27]]
Я хотел бы найти способ получить определенные числа из этого массива, возможно без использования цикла. Например, если у меня есть список:
List = [0 1 2 3 4 5 6 7 8 9 10]
Тогда я хотел бы получившийся массив Соседей, чтобы эти значения в списке удален.
Любая помощь будет оценена по достоинству.
Текущего ответ, что у меня есть следующий:
for aa in List:
i=0
for bb in Neighbors:
Neighbors[i] = [cc for cc in bb if cc != aa]
i=i+1
Но я хотел бы знать, если есть более эффективный способ обработки этого, так как я работаю с массивами проклейки миллионов.
Это не массивный массив. Размеры не совпадают. В массиве (2-d) каждая строка должна иметь одинаковое количество элементов. –
print (type (Neighbors)) дает –
user32147
Было бы очень полезно, если бы вы могли опубликовать короткую ** рабочую ** часть кода, которая генерирует «Соседи». В настоящее время неясно, какой вход вы получаете или какой объем вы хотите получить. И код, который у вас выше, является недопустимым кодом Python. См. [Эта страница справки] (http://stackoverflow.com/help/mcve). –