Я предполагаю, что ваш внешний массив имеет тип Object
dtype, иначе проблем не должно быть:
>>> x = np.array([('par1', 'par2', 'par3')], dtype=[('label_1', 'U10'), ('label_2', 'U10'), ('label3', 'U10')])
>>> Y = np.array(4*[x]+[None])[:-1].reshape(2,2)
>>> Y
array([[array([('par1', 'par2', 'par3')],
dtype=[('label_1', '<U10'), ('label_2', '<U10'), ('label3', '<U10')]),
array([('par1', 'par2', 'par3')],
dtype=[('label_1', '<U10'), ('label_2', '<U10'), ('label3', '<U10')])],
[array([('par1', 'par2', 'par3')],
dtype=[('label_1', '<U10'), ('label_2', '<U10'), ('label3', '<U10')]),
array([('par1', 'par2', 'par3')],
dtype=[('label_1', '<U10'), ('label_2', '<U10'), ('label3', '<U10')])]],
dtype=object)
(обратите внимание, как я должен прыгать через обручи, чтобы даже создать такую вещь.)
Упростите свою жизнь, преобразовав в правильный структурированный массив:
>>> Z = np.concatenate(Y.ravel()).reshape(Y.shape)
>>> Z
array([[('par1', 'par2', 'par3'), ('par1', 'par2', 'par3')],
[('par1', 'par2', 'par3'), ('par1', 'par2', 'par3')]],
dtype=[('label_1', '<U10'), ('label_2', '<U10'), ('label3', '<U10')])
Теперь вы можете просто индексировать по метке:
>>> Z['label_1']
array([['par1', 'par1'],
['par1', 'par1']], dtype='<U10')