gpt4 book ai didi

python - 如何将所有生成的排列保存到 Numpy 数组中?

转载 作者:太空宇宙 更新时间:2023-11-04 01:51:02 25 4
gpt4 key购买 nike

我想生成所有使用 itertools.product() 生成的排列并将其保存到一个数组中。目前,我正在尝试获取字符“ACGT”的所有长度为 2 的排列。当我尝试使用 numpy.asarray() 时,仅保存最终排列 (['T', 'T']),我认为这是因为数组中的条目每次都被覆盖。我试过以下方法,

import itertools as it
import numpy as np

for x in it.product('ACGT', repeat=2):
array = np.asarray(x)

print(array)
['T', 'T']

我稍后想为更大的“单词”长度执行此操作,但当我只期望 16 个结果时,测试起来会更容易。如果我使用的是 R,我会创建一个空向量并依次添加到向量中……但是,我仍在尝试掌握 Python 的窍门……请指教!

最佳答案

这不起作用的原因是因为对于it.product(..)每个 结果,您为那个 结果创建了一个数组.不是为了整个结果。

你可以创建这样的矩阵:

np.array(<b>list(</b>it.product('ACGT', repeat=2)<b>)</b>)

或者使用meshgrid:

dna = np.array(list('ACGT'))
np.transpose(<b>np.meshgrid(</b>dna, dna<b>)</b>).reshape(-1,2)

两者都生成一个如下所示的数组:

array([['A', 'A'],
['A', 'C'],
['A', 'G'],
['A', 'T'],
['C', 'A'],
['C', 'C'],
['C', 'G'],
['C', 'T'],
['G', 'A'],
['G', 'C'],
['G', 'G'],
['G', 'T'],
['T', 'A'],
['T', 'C'],
['T', 'G'],
['T', 'T']], dtype='<U1')

关于python - 如何将所有生成的排列保存到 Numpy 数组中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58034654/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com