Extrair valores 'nativos' do python da matriz estruturada numpy

Eu tenho uma matriz numpy estruturada.

A estrutura numpy corresponde ao tipogoogle.protobuf.Timestamp.

Eu preciso extrair oseconds int64 e ananos int32 de cada elemento da referida estrutura e atribuí-lo aoreal Timestamp estrutura.

Abaixo, listo um script que faz exatamente isso de maneira conveniente para qualquer pessoa testar (numpy eprotobuf Os módulos Python precisam ser instalados).

Como faço para me livrar / contornar oTypeError listados no final e têm os valores fora da estrutura numpy noTimestamp variável?

import numpy as np
from google.protobuf import timestamp_pb2

# numpy structure that mimics google.protobuf.Timestamp
Timestamp_t = np.dtype([('seconds', np.int64), ('nanos', np.int32)])

# populate numpy array with above structure
x_values_size = 3
x_values = np.empty((x_values_size,), dtype=Timestamp_t)
x_values['seconds'] = np.linspace(0, 100, num=x_values_size, dtype=np.int64)
x_values['nanos']   = np.linspace(0, 10, num=x_values_size, dtype=np.int32)

# copy data from numpy structured array to a descriptor-created Timestamp
for elem in np.nditer(x_values) :
    # destination protobuf structure (actually, part of some sequence)
    # try 1: this will actually change the type of 'ts'
    ts1 = timestamp_pb2.Timestamp()
    print(type(ts1)) # Timestamp as expected
    ts1 = elem
    print(ts1) # now a numpy.ndarray
    print(type(ts1))
    print(ts1.dtype)

    # try 2: assign member by member
    ts2 = timestamp_pb2.Timestamp()
    # fails with:
    # TypeError: array(0, dtype=int64) has type <class 'numpy.ndarray'>, but expected one of: (<class 'int'>,)
    ts2.seconds = elem['seconds']
    ts2.nanos = elem['nanos']
    print("-----")

Disclaimer: novato hardcore quando se trata de matrizes python e numpy.

questionAnswers(1)

yourAnswerToTheQuestion