python之数组篇

首先从本地导入文本文件(导入的为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(),返回得时删除元素后的新数组。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值