【问题标题】:How to iterate over position through Numpy- Python如何通过 Numpy-Python 迭代位置
【发布时间】:2021-08-23 17:59:11
【问题描述】:

我想知道是否有一种方法可以使用 NumPy 迭代序列列表中的各个位置。例如,如果我有一个序列列表:

a = ['AGHT','THIS','OWKF']

该函数将能够遍历每个单独的字符在他们的位置。所以对于第一个序列“AGHT”,它将被分解为“A”、“G”、“H”、“T”。最终目标是根据每个序列中的字符丰度创建单独的网格。到目前为止,我只能创建一个遍历每个字符的循环,但我在 NumPy 中需要它:

b = np.array(a)
for c in b:
    for d in c: 
        print(d)

我更喜欢在 NumPy 中这样做,但如果还有其他方法我也想知道。谢谢!

【问题讨论】:

  • 对于迭代,列表更好。并且 numpy 并没有为字符串处理增加太多。

标签: python python-3.x numpy


【解决方案1】:

list 将字符串展开为列表:

In [406]: a = ['AGHT','THIS','OWKF']
In [407]: [list(item) for item in a]
Out[407]: [['A', 'G', 'H', 'T'], ['T', 'H', 'I', 'S'], ['O', 'W', 'K', 'F']]

【讨论】:

    【解决方案2】:

    您可以使用join() 将数组连接成一个字符序列,然后遍历每个字符或像这样打印它:

    >>> a = ['AGHT','THIS','OWKF']
    >>> print(''.join(a)) 
    'AGHTTHISOWKF'
    

    或者把它变成一个单独的字符数组:

    >>> out = ''.join(a)
    >>> b = np.array(list(out))
    array(['A', 'G', 'H', 'T', 'T', 'H', 'I', 'S', 'O', 'W', 'K', 'F'],
          dtype='<U1')
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-04-05
      • 1970-01-01
      • 2020-11-09
      • 1970-01-01
      • 2021-05-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多