首先从本地导入文本文件(导入的为nparray类型,不能包含字符):
def loadtxtMethod(filename):
data = np.loadtxt(filename,dtype=np.int32,delimiter='\t')
return data
如何寻找网络的最大连接子图,根据我要进行的处理学习到的命令如下:
随机选取数组中的某一个值
nn = Net[int(np.ceil(np.random.rand()*Net.shape[0])),0]
获得数组的行和列:
n = Net.shape[0] #get the row
m = Net.shape[1] #get the col
随机选取一个0-1之间的值并对其进行向上取整,因为python从0开始,注意减1
a = np.ceil(np.random.rand())
获取所有该值在数组中的位置,并提取出来
m1 = np.in1d(Net[:, 0], nn, invert=False)
m2 = np.in1d(Net[:, 1], nn, invert=False)
g = Net[m1|m2,:]
获取存在g中的所有值,并有序输出,这就是nn所有的邻接节点
ng = np.unique(g)
将这些边从网络中剔除
Net = Net[~(m1|m2),:]
从邻接节点接着扩散,知道没有连通边为止
m1 = np.in1d(Net[:, 0], ng, invert=False)
m2 = np.in1d(Net[:, 1], ng, invert=False)
gg = Net[m1 | m2, :]
合并两个数组,是简单的将两个数组叠加在一起(按列),按行为np.hstack()
g = np.vstack([g,gg])
创建字典,将连接得节点放到字典得一类,得到最大得连通子图,并将连通子图得节点数保存下来
LG[k] = g
L.append(len(np.unique(g)))
寻找最大连通子图字典所在得位置
k = np.argmax(L)
LG[k]
今天遇到得错误有,开始判断Net是否为空时,用了,Net is not None, 这是不对得,我更改了条件,判断了Net得长度是否为0
pycharm批量注释 ctrl+/
IndentationError: unexpected indent
这是常有得错误了,主要就是没对齐,因为python对对齐有很严格得要求。
ValueError: cannot delete array elements
在用del删除数组时报错,是同来解决列表得,删除数组中得元素用numpy.delete(),返回得时删除元素后的新数组。