¿Cómo verificar si todos los valores en las columnas de una matriz numérica son iguales?

tobigue:

Quiero verificar si todos los valores en las columnas de una matriz / matriz numpy son iguales. He intentado utilizar reducede la ufunc equal , pero no parece que el trabajo en todos los casos:

In [55]: a = np.array([[1,1,0],[1,-1,0],[1,0,0],[1,1,0]])

In [56]: a
Out[56]: 
array([[ 1,  1,  0],
       [ 1, -1,  0],
       [ 1,  0,  0],
       [ 1,  1,  0]])

In [57]: np.equal.reduce(a)
Out[57]: array([ True, False,  True], dtype=bool)

In [58]: a = np.array([[1,1,0],[1,0,0],[1,0,0],[1,1,0]])

In [59]: a
Out[59]: 
array([[1, 1, 0],
       [1, 0, 0],
       [1, 0, 0],
       [1, 1, 0]])

In [60]: np.equal.reduce(a)
Out[60]: array([ True,  True,  True], dtype=bool)

¿Por qué la columna del medio en el segundo caso también se evalúa como True, cuando debería ser False?

¡Gracias por cualquier ayuda!

olvidar:
In [45]: a
Out[45]: 
array([[1, 1, 0],
       [1, 0, 0],
       [1, 0, 0],
       [1, 1, 0]])

Compare cada valor con el valor correspondiente en la primera fila:

In [46]: a == a[0,:]
Out[46]: 
array([[ True,  True,  True],
       [ True, False,  True],
       [ True, False,  True],
       [ True,  True,  True]], dtype=bool)

Una columna comparte un valor común si todos los valores de esa columna son verdaderos:

In [47]: np.all(a == a[0,:], axis = 0)
Out[47]: array([ True, False,  True], dtype=bool)

El problema con np.equal.reducese puede ver microanalizando lo que sucede cuando se aplica a [1, 0, 0, 1]:

In [49]: np.equal.reduce([1, 0, 0, 1])
Out[50]: True

Los dos primeros elementos 1y 0se prueban para determinar la igualdad y el resultado es False:

In [51]: np.equal.reduce([False, 0, 1])
Out[51]: True

Ahora Falsey 0se prueban para la igualdad y el resultado es True:

In [52]: np.equal.reduce([True, 1])
Out[52]: True

Pero Truey 1 son iguales, por lo que el resultado total es True, que no es el resultado deseado.

El problema es que reduceintenta acumular el resultado "localmente", mientras que queremos una prueba "global" como np.all.

Este artículo se recopila de Internet, indique la fuente cuando se vuelva a imprimir.

En caso de infracción, por favor [email protected] Eliminar

Editado en
0

Déjame decir algunas palabras

0Comentarios
Iniciar sesiónRevisión de participación posterior

Artículos relacionados

cómo verificar si los valores de una matriz y una matriz son iguales en Python

¿Cómo verificar si todos los valores de los elementos de dict en Python son iguales?

Cómo encontrar si todos los valores en una matriz son iguales o no usando javascript

Contraer valores de varias filas de una columna en una matriz cuando todos los valores de las demás columnas son iguales

Cómo comprobar si todos los miembros de una matriz son iguales a algo en unix bash

¿Cómo verificar si los valores de los campos entre objetos (almacenados dentro de una matriz asociativa) son iguales?

¿Cómo verificar si los valores de los campos entre objetos (almacenados dentro de una matriz asociativa) son iguales?

¿Cómo verificar si los valores de las claves en la lista de diccionarios son iguales a 0?

¿Cómo verificar si todos los valores en la opción de selección son iguales con javascript?

¿Cómo verificar si varios valores en una matriz son iguales a una cadena?

¿Cómo verificar si los elementos de cada lista en una columna de liste son todos iguales?

Matlab: Cómo recortar una matriz en la dimensión especificada si, a partir de ahí, todos los valores son iguales a un valor especificado

Compruebe si todos los valores de la matriz son iguales

Pandas Dataframe: ¿cómo puedo comparar los valores en dos columnas de una fila que son iguales a los de las mismas columnas de una fila posterior?

Copie el valor en las filas vacías de una columna si los valores de las filas correspondientes de las otras columnas son iguales (Pandas)

Cómo verificar si los valores separados por comas dados son una secuencia numérica ascendente

¿Cómo copiar el contenido de la celda de varias filas en una celda si los valores de 3 columnas son iguales dentro de una hoja de trabajo?

Compruebe si todos los valores de una columna son iguales en PySpark Dataframe

¿Cómo puedo eliminar una fila si todos los valores en un conjunto dado de columnas son 0?

verifique si los valores de dos columnas son iguales y luego complete con nan en una de esas columnas

La mejor manera de verificar si los valores de dos matrices son iguales / iguales en JavaScript

Cómo devolver un booleano verdadero si todos los valores en una matriz son verdaderos (cadenas) y si uno de los valores es falso (cadena) deje de verificar usando Javascript

¿Cómo eliminar duplicados en Python si los valores consecutivos son iguales en dos columnas?

¿Cómo eliminar duplicados en Python si los valores consecutivos son iguales en dos columnas?

Cree una nueva columna si todos los valores en una lista de columnas son cero

Cómo verificar si todos los valores en un marco de datos son verdaderos

Cómo verificar si todos los valores en un marco de datos son verdaderos

Excel VBA: combine celdas si los valores en las columnas son iguales

Excel VBA: combine celdas si los valores en las columnas son iguales