Этот сценарий определяет, идентичны ли два числовых массива arr1
и arr2
. Массивы будут содержать только значения 1 или 0 и будут иметь одинаковый размер.
Массивы всегда будут иметь 4 столбца, но может быть переменное количество строк, поэтому возможные размеры массива будут 4x4,4x5, 4x6 и т. Д. (Но помните, что все сравниваемые массивы будут одинакового размера).
Я хотел бы определить min_similarity_percent
и рассчитать «допуск» на основе этого процента, а также массиваразмер. Я не понимаю, должен ли я использовать аргументы atol
или rtol
в моем случае. https://docs.scipy.org/doc/numpy/reference/generated/numpy.allclose.html
Например, если min_similarity_percent == 90
и между arr1
и arr2
, когда они оба 4x4, есть только один другой элемент, я бы хотел, чтобы np.allclose () возвратил True
потому что (15/16) * 100 == 93,75, что> 90.
Как рассчитать значение допуска atol
или rtol
, чтобы соответствовать этому?
import numpy as np
arr1 = np.array([
[0,0,1,1],
[0,0,1,1],
[1,0,1,1],
[0,0,1,0]
])
arr2 = np.array([
[1,0,1,1],
[0,0,1,1],
[1,0,1,1],
[0,0,1,0]
])
min_similarity_percent = 90
similar = np.allclose(arr1, arr2)
if similar:
print("similar")
else:
print("not similar")