Can't use /= on numpy array Can't use /= on numpy array python python

Can't use /= on numpy array


As pointed out in the comment, the change from int (which is how a is created) to float (which is the result of /) is not allowed when using /=. To "fix" this the dtype of a just has to be a float from the beginning:

a=np.array([2, 4, 6], dtype=np.float64)a/=2print(str(a))>>>array([1., 2., 3.])


As mentioned in the comments, a / 2 produces a float array, but the type of a is integer. Since NumPy's assignment operators are optimized to reuse the same array (that is a = a + 2 and a += 2 are not exactly the same, the first creates a new array while the second just reuses the existing one), you can not use them when the result has a different dtype. If what you want is an integer division, you can use the //= assignment operation:

>>> a = np.array([2, 4, 6])>>> a //= 2>>> aarray([1, 2, 3])