Very starnge problem in python

Priya Singh sapna.intell at gmail.com
Wed Feb 10 10:34:26 EST 2021


def closset_match(check, arr, itr):
    id_min = []
    for ii in range(itr):
        id_min_tmp = np.argmin( abs(arr - check) )
        id_min.append(id_min_tmp)
        arr[id_min_tmp] = float('-inf')
    id_min = np.array(id_min)
    return id_min
    
def get_match(arr1, arr2, tol, itr):
    tt = arr2
    for ii in range(5,6):
        id_com = np.where( abs(arr1[ii] - tt) < tol )[0]
        if np.size(id_com) >= itr:
            mm = closset_match(arr1[ii], tt[id_com], itr)            
            id_ttt  = np.array(id_com)[mm]
            #print(id_ttt)
            print(arr2[id_ttt])
            tt[id_ttt] = 0.0 ########-9999.9 ###float('-inf')
            print(arr2[id_ttt])               

This is the two routines I am using to compare the two float arrays and getting the matching in them up to some tolerance.

The very strange thing which is happening here is you see variable arr2 at ID id_ttt before changing the variable tt at the same ID (i.e. id_ttt]) is showing some value but once I am printing its value after assigning tt[id_ttt] = 0.0, arr2[id_ttt] is also showing 0 value however, I have not touched arr2 anywhere as far as changing its values are concerned.

Can any one please help me.


More information about the Python-list mailing list