No sé si alguna vez ha tenido esta experiencia, solo quiero juzgar si los valores de cada elemento en la nueva matriz obtenida después de dos operaciones de matriz son los mismos. Aquí hay un np.unique()
método para usar , el código es el siguiente:
import numpy as np
class Debug:
@staticmethod
def isAllElementSame():
x1 = np.array([[1, 2, 3], [3, 4, 5], [6, 7, 8]])
x2 = np.array([[81., 162., 243., ], [243., 324., 405.], [486., 567., 648.]])
print('The result if x2/x1 is:')
print(x2 / x1)
print('Judge whether all elements in array are same or not')
print(len(np.unique(x2 / x1)) == 1)
if __name__ == '__main__':
debug = Debug()
debug.isAllElementSame()
"""
The result if x2/x1 is:
[[81. 81. 81.]
[81. 81. 81.]
[81. 81. 81.]]
Judge whether all elements in array are same or not
True
"""
Se puede observar que cuando la salida es True
, indica que los valores de todos los elementos del arreglo son iguales, por el contrario, cuando False
lo es, hay diferentes valores de elementos en el arreglo.
¿Qué pasa si los elementos de la matriz son complejos?
import numpy as np
class Debug:
@staticmethod
def isAllElementSame():
x1 = np.array([complex(1, 2), complex(2, 4)])
x2 = np.array([complex(2, 4), complex(4, 8)])
print('The result if x2/x1 is:')
print(x2 / x1)
print('Judge whether all elements in array are same or not')
print(len(np.unique(x2 / x1)) == 1)
if __name__ == '__main__':
debug = Debug()
debug.isAllElementSame()
"""
The result if x2/x1 is:
[2.+0.j 2.+0.j]
Judge whether all elements in array are same or not
True
"""
Como puede ver, este método sigue siendo aplicable cuando los elementos de la matriz son complejos. Sin embargo, cuando el elemento de la matriz como un decimal puede fallar, si el fallo plus np.round()
función y conjunto a un decimal válido obligados a retener, por ejemplo: print(len(np.unique(np.round(x2 / x1))) == 1)
.
La palabra clave no es fácil, si la encuentra útil, levante la mano para dar un me gusta y déjeme recomendarla para que la vea más gente ~