python - 通过遍历列表在python中生成三维数组

标签 python arrays multidimensional-array numpy

鉴于我的知识水平(或缺乏),我理解这项任务可能有点雄心勃勃,但仍然如此。

我有一个包含 16 个字符串的列表,大约有 3000 个项目,其中每个字符表示另一个数字列表。不确定我是否说清楚了;它实际上是一个由 16 个氨基酸组成的长肽列表,其中每个氨基酸(20 个中的 1 个)由 5 个数字表示。

我想遍历该列表(肽),然后为每个字符(氨基酸)将相关的 5 个数字(Atchley 因子,如果你感兴趣的话)添加到一个数组,形成一个 3 维数组,其中我的轴是:肽实例 (3000) x 该肽内的氨基酸 (16) x 因子 (5)。

我实在是无法理解,所以我不确定我得到的东西是否有用,但在这里(使用 numpy):

array = np.empty(shape=(len(peptides),16,5)

for i in peptides:

    for j in str(i):

(在这一点上,我在浏览论坛时尝试了很多不同的东西,最后以类似这样的东西结束,但我敢肯定我什至错过了我在这里的目标)

    if j == 'A':    
            L16Afctrs = np.append([-0.59145974, -1.30209266, -0.7330651, 1.5703918, -0.14550842], axis=1)
    elif j == 'C':
            L16Afctrs = np.append([-1.34267179, 0.46542300, -0.8620345, -1.0200786, -0.25516894], axis=1)
    ...
    elif j == 'Y':
            L16Afctrs = np.append([0.25999617, 0.82992312, 3.0973596, -0.8380164, 1.51150958], axis=1)

就像我说的,我真的很挣扎,任何帮助将不胜感激。

编辑:澄清(希望如此)

我有大约 3000 个不同的 16 个字符串的列表,其中这些字符串中的每个字符表示另外 5 个数字。

我想生成一个 3 维数组或结构,由此我可以(最终)通过查看 3 维数组中的给定平面(我设想的维度是;原始字符串 x 16 个字符 x 5 个因子)。

我目前正在制作一个不同字符的字典,与@Winston 的帖子相关,然后尝试将其折叠成一个 3d 数组。

编辑 2:成功!

Winston 的修复效果非常好!

最佳答案

将数据存储在字典中:

DATA = {
    'A' : numpy.array([-0.59145974, -1.30209266, -0.7330651, 1.5703918, -0.14550842]),
    'B' : numpy.array([-1.34267179, 0.46542300, -0.8620345, -1.0200786, -0.25516894]),
    'D' : numpy.array([1.05015062, 0.30242411, -3.6559147, -0.2590236, -3.24176791])
    ...
}

使用 python 列表理解构建所有这些的列表,然后让 numpy 将该列表转换为 numpy 数组

counters = numpy.array([DATA[letter] for peptide in peptides for letter in peptide])

将数组重新整形为 3D 维度,因为最后一步将有 2D 数组

counters = counters.reshape( len(peptides), 16, 5 )

关于python - 通过遍历列表在python中生成三维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13313738/

相关文章:

python - 如何根据概率对二进制 np.ndarray 执行随机突变?

java - 可全方位扩展的二维数组

PHP:二维数组创建索引或添加(如果存在)

python - virtualenv 未指向本地可执行文件

C++检查带有零和空值的数组的长度

python - 使用 Pandas 中的列表删除数据框中的行

javascript - 从 json 数组中删除特定元素

javascript - 安全地检查多维数组中的元素是否在 JavaScript 中未定义?

python - 文档脚本(Matlab 在 python 中的发布功能)

python - 如何从Python播放视频片段?