numpy:创建一个2d numpy数组,其中每一行都填充来自常规数组的字符串

时间:2017-11-12 05:14:47

标签: python numpy

我有一个常规列表,其中填充了相同长度的字符串:

['FADVAG', 'XXDXFA', 'GDXX..']

我想将它转换为2d numpy数组,如下所示:

[['F' 'A' 'D' 'V' 'A' 'G']
['X' 'X' 'D' 'X' 'F' 'A']
['G' 'D' 'X' 'X' '.' '.']]

我该怎么做?

2 个答案:

答案 0 :(得分:1)

list('astring')分割字符:

In [187]: alist=['FADVAG', 'XXDXFA', 'GDXX..']
In [188]: arr = np.array([list(a) for a in alist])
In [189]: arr
Out[189]: 
array([['F', 'A', 'D', 'V', 'A', 'G'],
       ['X', 'X', 'D', 'X', 'F', 'A'],
       ['G', 'D', 'X', 'X', '.', '.']],
      dtype='<U1')

如果您想避免列表理解,请将它们连接成一个字符串并从那里开始

np.array(list(''.join(alist))).reshape(3,-1)

答案 1 :(得分:0)

尝试以下代码:

import numpy as np
l = ['FADVAG', 'XXDXFA', 'GDXX..']
l = np.array(l)
l.reshape(len(l),-1)

输出:

array([['FADVAG'],
       ['XXDXFA'],
       ['GDXX..']],
      dtype='<U6')