相关疑难解决方法(0)

Numpy:加入结构化数组?

输入

我在列表中有许多numpy结构化数组,如下例所示:

import numpy

a1 = numpy.array([(1, 2), (3, 4), (5, 6)], dtype=[('x', int), ('y', int)])

a2 = numpy.array([(7,10), (8,11), (9,12)], dtype=[('z', int), ('w', float)])

arrays = [a1, a2]
Run Code Online (Sandbox Code Playgroud)

期望的输出

将它们连接在一起以创建如下所示的统一结构化数组的正确方法是什么?

desired_result = numpy.array([(1, 2, 7, 10), (3, 4, 8, 11), (5, 6, 9, 12)],
                             dtype=[('x', int), ('y', int), ('z', int), ('w', float)])
Run Code Online (Sandbox Code Playgroud)

目前的方法

这是我目前正在使用的,但它非常慢,所以我怀疑必须有一个更有效的方式.

from numpy.lib.recfunctions import append_fields

def join_struct_arrays(arrays):
    for array in arrays:
        try:
            result = append_fields(result, array.dtype.names, [array[name] for name in array.dtype.names], usemask=False)
        except NameError: …
Run Code Online (Sandbox Code Playgroud)

python numpy

22
推荐指数
3
解决办法
1万
查看次数

标签 统计

numpy ×1

python ×1