合并两个记录数组

3 投票
3 回答
4166 浏览
提问于 2025-04-15 15:51

我有两个Numpy记录数组,它们的字段完全相同。有没有简单的方法把它们合并成一个(也就是把一个表格加到另一个表格后面)?

3 个回答

0
for i in array1:
    array2.append(i)
array1.extend(array2)

或者(如果已经实现的话)

现在 array1 里也包含了 array2 的所有元素

0
#!/usr/bin/env python
import numpy as np
desc = {'names': ('gender','age','weight'), 'formats': ('S1', 'f4', 'f4')} 
a = np.array([('M',64.0,75.0),('F',25.0,60.0)], dtype=desc)
b = np.array([('M',64.0,75.0),('F',25.0,60.0)], dtype=desc)
alen=a.shape[0]
blen=b.shape[0]
a.resize(alen+blen)
a[alen:]=b[:]

这个方法适用于结构化数组,但不适用于递归数组。也许这就是为什么我们应该继续使用结构化数组的一个好理由。

7

使用 numpy.hstack()

>>> import numpy
>>> desc = {'names': ('gender','age','weight'), 'formats': ('S1', 'f4', 'f4')} 
>>> a = numpy.array([('M',64.0,75.0),('F',25.0,60.0)], dtype=desc)
>>> numpy.hstack((a,a))
array([('M', 64.0, 75.0), ('F', 25.0, 60.0), ('M', 64.0, 75.0),
       ('F', 25.0, 60.0)], 
      dtype=[('gender', '|S1'), ('age', '<f4'), ('weight', '<f4')])

撰写回答