我有一份表格清单:
['a b 1 2', 'c d 3 4']
我最终试图以4个垂直的numpy阵列结束。例如,['a','c']
和[1,2]
我使用各种分割函数,数组拆分等让我感到有些困惑。
超级noob问题,这更像是一种尽可能有效地做到这一点的练习。
非常感谢任何帮助!
答案 0 :(得分:1)
numpy中没有任何功能可以将python字符串列表中的字符串直接拆分为单独的数组。如果这些字符串来自具有一致列数据类型的文本文件中的读取,请考虑使用numpy.genfromtxt
:
http://docs.scipy.org/doc/numpy/reference/generated/numpy.genfromtxt.html
修改,或者您可以将数组强制转换为np.genfromtxt
在其回复中可以读为 jterrace 备注的格式。
答案 1 :(得分:1)
您可以将其作为记录数组读取:
>>> A = ['a b 1 2', 'c d 3 4']
>>> from StringIO import StringIO
>>> import numpy
>>> s = StringIO('\n'.join(A))
>>> data = numpy.genfromtxt(s, dtype=[('letter1', 'S1'), ('letter2', 'S1'), ('num1', 'f8'), ('num2', 'f8')])
然后访问列:
>>> data['letter1']
array(['a', 'c'],
dtype='|S1')
>>> data['num1']
array([ 1., 3.])
请注意,这仅限于固定大小的字符串。不确定这是否是您数据的问题。
答案 2 :(得分:0)
A = ['a b 1 2', 'c d 3 4']
filter(lambda x:x[0].strip() or x[1].strip(),zip (*A))
#[('a', 'c'), ('b', 'd'), ('1', '3'), ('2', '4')]
虽然不是numpy数组
[编辑]假设我理解我不确定的目标...