使用concatentate()方法连接numpy数组

0 投票
2 回答
1154 浏览
提问于 2025-04-17 23:24

我想把numpy数组连接在一起。

我遇到的错误是:ValueError: 0维数组无法连接。

代码如下:

n = len(names)
#print names
print n

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

我不知道该怎么解决这个问题。如果有人能帮我就太好了。

谢谢,

M

2 个回答

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 的 numpy 数组。如果这正是你想要的(我对此表示怀疑),那就直接去掉 concatenate。否则,你到底想要实现什么呢?

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])]

撰写回答