Введите
У меня есть много 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]
Желаемый выход
Как правильно объединить их все вместе для создания единого структурированного массива, подобного следующему?
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)])
Текущий подход
Это то, что я сейчас использую, но это очень медленно, поэтому я подозреваю, что должен быть более эффективный способ.
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:
result = array
return result