python用方法concatenate()连接numpy数组

时间:2014-03-22 11:29:00

标签: python arrays numpy

我想连接numpy数组。 我得到的错误是:ValueError:0-d数组不能连接

代码如下:

n = len(names)
#print names
print n

pairs = concatenate(array([[(j,i) for j in xrange(i)] for i in xrange(1,n)]))

我现在还没有解决这个问题。如果有人可以帮助我,我会很棒。

干杯, 中号

2 个答案:

答案 0 :(得分:1)

我不知道你想做什么。所以看看它是否是你想要的输出。如果不是,请评论您想要的输出。

>>> n = 5
>>> a = array([[(j,i) for j in xrange(i)] for i in xrange(1,n)])
>>> a
array([
       [(0, 1)],
       [(0, 2), (1, 2)],
       [(0, 3), (1, 3), (2, 3)],
       [(0, 4), (1, 4), (2, 4), (3, 4)]
      ], dtype=object)

>>> import itertools
>>> it = itertools.chain(*a)
>>> list(it)
[array([0, 1]),
 array([0, 2]),
 array([1, 2]),
 array([0, 3]),
 array([1, 3]),
 array([2, 3]),
 array([0, 4]),
 array([1, 4]),
 array([2, 4]),
 array([3, 4])]

答案 1 :(得分:0)

让我们看看你想要连接的内容:

>>> a = np.array([[(j,i) for j in xrange(i)] for i in xrange(1,n)])
>>> a
array([[(0, 1)], [(0, 2), (1, 2)]], dtype=object)
>>> a.shape
(2,)
>>> a[0]
[(0, 1)]
>>> a[1]
[(0, 2), (1, 2)]

你已经有一个object dtype的numpy数组。如果这是你真正想要的(我怀疑),只需删除concatenate。否则,你实际上想要达到的是什么。