Não há operadores binários para matrizes estruturadas no Numpy?
Ok, então, depois de ler os tutoriais sobre as matrizes estruturadas do numpy, sou capaz de criar alguns exemplos simples:
from numpy import array, ones
names=['scalar', '1d-array', '2d-array']
formats=['float64', '(3,)float64', '(2,2)float64']
my_dtype = dict(names=names, formats=formats)
struct_array1 = ones(1, dtype=my_dtype)
struct_array2 = array([(42., [0., 1., 2.], [[5., 6.],[4., 3.]])], dtype=my_dtype)
(Meu caso de uso pretendido teria mais de três entradas e usaria matrizes 1d muito longas.) Portanto, tudo vai bem até tentarmos executar algumas contas básicas. Eu recebo erros para todos os seguintes itens:
struct_array1 + struct_array2
struct_array1 * struct_array2
1.0 + struct_array1
2.0 * struct_array2
Aparentemente, operadores simples (+, -, *, /) não são suportados nem mesmo para as matrizes estruturadas mais simples. Ou eu estou esquecendo de alguma coisa? Devo procurar algum outro pacote (e não diga Pandas, porque é um exagero total para isso)? Parece uma capacidade óbvia, então estou um pouco aturdido. Mas é difícil encontrar qualquer conversa sobre isso na rede. Isso não limita severamente a utilidade de matrizes estruturadas? Por que alguém usaria uma matriz de estrutura em vez de matrizes agrupadas em um ditado? Existe uma razão técnica para isso ser intratável? Ou, se a solução correta é executar o árduo trabalho de sobrecarga, como isso é feito, mantendo as operações rápidas?