利用python查看數組中的所有元素是否相同

不知道大傢有沒有過這種經歷,就是想要判斷兩個數組運算後得到的新數組中的各個元素值是否相同。這裡給出一種使用np.unique()的方法,代碼如下:

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
"""

可以看到,當輸出為True的時候,表明數組中的所有元素的值均一致,反之,當為False的時候,數組中存在不一樣的元素值。

如果數組中的元素是復數呢?

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
"""

可以看到,當數組元素為復數時,該方法仍然適用。然而當數組元素為小數時,可能會失效,如果失效,加上np.round()函數並設定所需要保留的有效位小數即可,例如:print(len(np.unique(np.round(x2 / x1))) == 1)。

到此這篇關於利用python查看數組中的所有元素是否相同的文章就介紹到這瞭,更多相關python查看數組元素相同內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: