Como corrigir: todas as matrizes de entrada devem ter o mesmo número de dimensões


Um erro que você pode encontrar ao usar o NumPy é:

 ValueError : all the input arrays must have same number of dimensions

Este erro ocorre quando você tenta concatenar duas matrizes NumPy de dimensões diferentes.

O exemplo a seguir mostra como corrigir esse erro na prática.

Como reproduzir o erro

Suponha que temos os dois arrays NumPy a seguir:

 import numpy as np

#create first array
array1 = np. array ([[1, 2], [3, 4], [5,6], [7,8]])

print (array1) 

[[1 2]
 [3 4]
 [5 6]
 [7 8]]

#create second array 
array2 = np. array ([9,10,11,12])

print (array2)

[9 10 11 12]

Agora suponha que tentamos usar a função concatenate() para combinar os dois arrays em um único array:

 #attempt to concatenate the two arrays
n.p. concatenate ([array1, array2])

ValueError : all the input arrays must have same number of dimensions, but the array at
index 0 has 2 dimension(s) and the array at index 1 has 1 dimension(s)

Recebemos um ValueError porque os dois arrays têm dimensões diferentes.

Como corrigir o erro

Podemos usar dois métodos para corrigir esse erro.

Método 1: use np.column_stack

Uma maneira de concatenar as duas tabelas evitando erros é usar a função column_stack() da seguinte forma:

 n.p. column_stack ((array1, array2))

array([[ 1, 2, 9],
       [3, 4, 10],
       [5, 6, 11],
       [7, 8, 12]])

Observe que podemos concatenar com êxito os dois arrays sem erros.

Método 2: use np.c_

Também podemos concatenar as duas tabelas evitando erros usando a função np.c_ da seguinte forma:

 n.p. c_ [array1, array2]

array([[ 1, 2, 9],
       [3, 4, 10],
       [5, 6, 11],
       [7, 8, 12]])

Observe que esta função retorna exatamente o mesmo resultado do método anterior.

Recursos adicionais

Os tutoriais a seguir explicam como corrigir outros erros comuns em Python:

Como corrigir KeyError em Pandas
Como corrigir: ValueError: não é possível converter float NaN em int
Como corrigir: ValueError: os operandos não puderam ser transmitidos com formas

Add a Comment

O seu endereço de email não será publicado. Campos obrigatórios marcados com *