小编bpe*_*ter的帖子

在igraph中基于源/目标选择边

有没有一种简单的方法可以根据igraph中的源和目标选择/删除边缘?

我使用的基本上是

g.es["source"] = [e.source for e in g.es]
g.es["target"] = [e.target for e in g.es]    
g.es["tuple"]  = [e.tuple  for e in g.es]        

g.es.select(target=root)
Run Code Online (Sandbox Code Playgroud)

但我觉得应该有一种方法可以做到这一点,而无需两次存储源/目标信息.

python igraph

8
推荐指数
1
解决办法
4211
查看次数

自定义索引的数据结构

我期待写一个数据结构来代表一些遗传数据.这个数据可以表示为一个大小列表n,其中每个条目也有一个"遗传位置",它是0到1之间的实数.为了使术语清晰,我将称之为列表中的位置id和遗传位置gpos.我实现它的方式是作为一个类

class Coords(object):

    def __init__(self, *args, **kwargs):
        self.f = list(*args, **kwargs)
        self.r = dict()
        for i,e in enumerate(self.f):
            self.r[e] = i

    def __setitem__(self,x,y):
        self.f.__setitem__(x,y)
        self.r.__setitem__(y,x)

    def __getitem__(self,x):
        return self.f.__getitem__(x)

    def __len__(self):
        return self.f.__len__()
Run Code Online (Sandbox Code Playgroud)

现在,我有两个问题.第一个是self.r的浮点数是浮点数,这显然是一个坏主意.我在考虑将它们转换为字符串(具有固定数字的数字),但有更好的想法吗?我的另一个问题是我想通过实现访问条目gpos,所以如果我想访问gpos0.2和0.4 之间的所有内容,我希望能够使用

import numpy as np
Coords(np.arange(1,0,-.1))
c.r[0.2:0.4]
Run Code Online (Sandbox Code Playgroud)

是否有一种简单的方法来定义它?我正在考虑id使用二进制搜索找到正确的起始位置和结束位置,然后self.f使用这些ID 进行访问,但有没有办法实现上述语法?

python indexing numpy

4
推荐指数
1
解决办法
2228
查看次数

标签 统计

python ×2

igraph ×1

indexing ×1

numpy ×1