chemotools
chemotools copied to clipboard
BaselineShift fails on 2d array with `dtype=int`
BaselineShift class fails on an int
dtype 2d array. The issue lies on the implementation here. The issue is this:
x = np.array([[1,2,3]]) # dtype int
new_x = np.add(x, 0.5) # dtype float
x[0] = new_x
x >>> np.array([[1,2,3]]) # you cannot replace arrays with different dtypes
There are several fixes to this, including an easy one which is to just assign the dtype of the array being transformed to float
. Or we can use numpy.apply_along_axis
which fixes the issue we were having by first creating an array of zeros (which by default is float
dtype) and then does the replacement thing.
I don't know if this is a major issue, but could be useful regardless of its importance.
Update: I see that other classes of augmentation have similar implementation and have the same issue. Should I make changes and do a pull request? Let me know (with the solution of your choice)