如何分组numpy数组位置值?

时间:2015-03-04 14:06:24

标签: python arrays numpy

有一个np.array:

[
array(['x_0', '2/20/1990', '3/20/1990'], dtype=object), 
array(['x_1', '1', '2'], dtype=object), 
array(['x_3', 'foo', 'bar'], dtype=object), etc...]

我想创建一个包含所有这些值的数组(所有第一个值都包含第一个值,第二个值包含第二个值,并以“\ n”分隔:

像这样:

[array(['x_0\nx_1\nx_n, '2/20/1990\n1\nfoo', '3/20/1990\n2\bar', etc], dtype=object)]

2 个答案:

答案 0 :(得分:2)

您可以使用python内置zip函数和join

>>> a=[
... np.array(['x_0', '2/20/1990', '3/20/1990'], dtype=object), 
... np.array(['x_1', '1', '2'], dtype=object), 
... np.array(['x_3', 'foo', 'bar'], dtype=object)]

>>> new=np.array(['\n'.join(k) for k in zip(*a)],dtype=object)
>>> new
array(['x_0\nx_1\nx_3', '2/20/1990\n1\nfoo', '3/20/1990\n2\nbar'], dtype=object)

答案 1 :(得分:1)

首先转置矩阵,然后使用'\ n'作为分隔符连接每行的值。

map(lambda x: '\n'.join(x), a.T)