2

如果我有一个像

foo = dtype([('chrom1', '<f4', (100,)), ('chrom2', '<f4', (13,))])

如何创建该 dtype 的实例,作为标量。

背景,以防万一有更好的方法:

我想有效地表示直接映射到基因组中碱基的标量数组,逐个染色体。我不想要这些基因组数组的数组,每个只是一组结构化的标量,我想按名称/位置引用,并且能够添加/减去/等。

似乎 dtype.type() 可能是前进的道路,但我还没有找到正确调用此函数的有用文档。

所以假设我有:

chrom1_array = numpy.arange(100)
chrom2_array = numpy.arange(13)
genomic_array = foo.type([chrom1_array, chrom2_array])

最后一行是不对的,但希望它传达了我目前正在尝试的内容。

这是一个可怕的想法吗?如果是这样,正确的想法是什么?如果没有,实现它的正确方法是什么?

这种工作,但很糟糕:

 bar = np.zeros(1, dtype=[('chrom1', 'f4', 100), ('chrom2', 'f4', 13)])[0]
4

1 回答 1

1

尝试这个:

foo = np.dtype([('chrom1', '<f4', (100,)), ('chrom2', '<f4', (13,))])
t = np.zeros((), dtype=foo)
于 2014-11-05T02:18:48.653 回答