Каков синтаксис для создания экземпляра структурированного dtype в numpy?

Если у меня есть dtype, как

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]

1 ответ

Решение

Попробуй это:

foo = np.dtype([('chrom1', '<f4', (100,)), ('chrom2', '<f4', (13,))])
t = np.zeros((), dtype=foo)
Другие вопросы по тегам