Fix the different behavior of the division operator in python3.6 #10
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
get_class_ind() function is supposed to return class indices, but '/' operator does float division in python3.6 while it does integer divison in python2.7. As a result, we can get class indices such as 9.75, which creates a bug in the code. For example, we have the below line at line 171.
sq_dists[self.get_class_ind(seed_cluster) == self.cluster_classes] = np.inf
When the left-hand side of == does not return a whole number in python3.6, none of the values in self.cluster_classes are equal to that value. This behaviour is fixed by changing '/' to '//' since '//' does integer division in both python versions.