1. 程式人生 > 程式設計 >利用python檢視陣列中的所有元素是否相同

利用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檢視陣列元素相同內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!