ValueError: configurando um elemento da matriz com uma sequência
Este código Python:
Lança esta mensagem de erro:
Alguém pode me mostrar o que fazer para corrigir o problema no código quebrado acima, para que ele pare de lançar uma mensagem de erro?
EDIT: Eu fiz um comando de impressão para obter o conteúdo da matriz, e é isso que foi impresso:
UnFilteredDuringExSummaryOfMeansArray é:
Parece uma matriz de 5 linhas por 13 colunas para mim, embora o número de linhas seja variável quando dados diferentes são executados pelo script. Com esses mesmos dados que estou adicionando.
EDIT 2 : No entanto, o script está lançando um erro. Portanto, não acho que sua ideia explique o problema que está acontecendo aqui. Obrigado mesmo assim. Alguma outra ideia?
Para sua informação, se eu substituir esta linha de código problemática:
Em seguida, essa seção do script funciona bem sem gerar um erro, mas essa linha de código fica mais abaixo:
Lança este erro:
Portanto, você pode ver que preciso especificar o tipo de dados para poder usar o ylim no matplotlib, mas especificar o tipo de dados está lançando a mensagem de erro que iniciou esta postagem.
— MedicalMath
alguém deseja remover todos os detalhes irrelevantes desta pergunta?
Pelo código que você nos mostrou, a única coisa que podemos dizer é que você está tentando criar uma matriz a partir de uma lista que não tem o formato de uma matriz multidimensional. Por exemplo
gerará essa mensagem de erro, porque o formato da lista de entrada não é uma "caixa" (generalizada) que pode ser transformada em uma matriz multidimensional. Então provavelmente UnFilteredDuringExSummaryOfMeansArraycontém seqüências de diferentes comprimentos.
Edit : Outra causa possível para esta mensagem de erro está tentando usar uma string como um elemento em uma matriz do tipo float:
É isso que você está tentando de acordo com a sua edição. Se você realmente deseja ter um array NumPy contendo strings e floats, você pode usar o dtype object, que permite que o array armazene objetos Python arbitrários:
Sem saber o que seu código deve realizar, não posso julgar se é isso que você deseja.
Obrigado, mas não acho que essa seja a resposta. Eu adicionei o conteúdo da matriz quando lança o erro acima. E parece-me que é uma caixa quando colo no bloco de notas e o examino linha por linha. Alguma outra ideia?
Sua edição parece ter resolvido meu problema. Eu precisava definir o dtype = objeto. Muito obrigado.
Esta pergunta foi completamente respondida.
Outra possibilidade poderia ser um problema em 1,9 quando a construção de uma matriz de objetos (não necessariamente listas) que implementam __getitem__conforme especificado aqui: github.com/numpy/numpy/issues/5100
O ValueError do Python:
Significa exatamente o que diz: você está tentando inserir uma sequência de números em um único slot de número. Pode ser lançado sob várias circunstâncias.
1. Quando você passa uma tupla ou lista python para ser interpretada como um elemento de matriz numpy:
2. Tentando compactar um comprimento numpy numérico> 1 em um elemento numpy numérico:
Um array numpy está sendo criado e o numpy não sabe como agrupar tuplas ou matrizes de valores múltiplos em slots de elemento único. Ele espera que seja avaliado o que você avaliar para um único número; caso contrário, o Numpy responderá que não sabe como definir um elemento da matriz com uma sequência.
explicação muito agradável
No meu caso, recebi esse erro no Tensorflow, a razão pela qual eu estava tentando alimentar uma matriz com diferentes comprimentos ou sequências:
E se minha matriz for:
Então eu receberei o erro:
mas se eu fizer preenchimento então:
Eu estava usando pyCUDA e acidentalmente atribui um elemento gpuarray à matriz numpy. Eu recebi o mesmo erro.
— Tirtha R
@Aaditya Ura, como realizar tal preenchimento, você pode se referir a algo?
para aqueles que estão tendo problemas com problemas semelhantes no Numpy, uma solução muito simples seria:
definindo dtype=objectao definir uma matriz para atribuir valores a ela. por exemplo:
— Adam Liu
Como é diferente de Editparte da resposta aceita?
— Mcagriardic
No meu caso, o problema era outro. Eu estava tentando converter listas de listas de int para matriz. O problema era que havia uma lista com um comprimento diferente das outras. Se você quiser provar isso, deve fazer:
No meu caso, a referência de comprimento era 560.
— Andrés M. Jiménez
No meu caso, o problema estava com um gráfico de dispersão de um dataframe X []:
— Max Kleiner
Mais alguma explicação seria legal.
O erro de valor significa que estamos tentando carregar uma matriz de n elementos (sequência) em um slot de número único que possui apenas um número flutuante. Portanto, você está tentando definir um elemento de matriz com uma sequência. Com .toarray (), aumentamos para uma matriz de sequência. toarray () retorna um ndarray;
Quando a forma não é regular ou os elementos têm tipos de dados diferentes, o dtypeargumento passado para np.array somente pode ser object.
— xiong cai
Bem-vindo ao SO. Esta pergunta é muito antiga e parece que sua resposta duplica pelo menos uma das outras. Se sua resposta for de fato diferente, tente adicionar mais alguns detalhes que explicam como.