我正在使用networkx分析网络。 networkx存储在pandas数据帧中,要创建图,我使用存储在numpy数组5053x5053中的一组数据q,然后将序列号(取自numpy数组序列中存储的文件)分配给索引和列:
Import networkx as nx
Import pandas as pd
network = pd.DataFrame (data = q, index = serials, columns = serials)
G = nx.from_numpy_matrix(network.values)
然后我重新标记节点:
G = nx.relabel_nodes(G, dict(enumerate(network.columns)))
我有一个绿色产品给出的子图,我将它们的序列号存储在另一个导入的文件中,例如numpy数组(称为绿色)。我需要一个新的数组来处理绿色的两个子图,而没有绿色从序列中删除绿色的所有元素。
在numpy中有一个函数还是我应该使用数字呢(如何?)?
编辑: 这是一个样本。串行是具有5053个值的numpy数组:
[ 10110 10190 10210 ... 970500 970600 999999]
Greens是具有255个值的numpy数组:
[840410 840510 841410 ... 903210 460120 843680]
我希望有一个新的数组,其值具有5053-255,从序列中删除绿色元素。 例: 将numpy导入为np
a = np.array([1,5,7,9,45,52,59])
b = np.array ([1,9,52])
我想要的输出是
c = np.array([5,7,45,59])
答案 0 :(得分:2)
使用np.setdiff1d
-返回a
中b
以外的唯一值。
a = np.array([1,5,7,9,45,52,59])
b = np.array ([1,9,52])
c = np.setdiff1d(a,b)
c
array([ 5, 7, 45, 59])