The code
a = 100. * np.random.randn(200)
a = a.astype(int)
recasts a as an array of integer numbers. Meanwhile, the code
a = 100. * np.random.randn(200)
a[:] = a.astype(int)
recasts a as an array of integer floats obtained by truncating the original values of a. Why doesn't the second case also give integers?
I'm currently using Python 3.8 and NumPy 1.23.
CodePudding user response:
To clarify, a.astype(int) return a new array with dtype('int32').
Line
a = a.astype(int)alters arrayawith the new array return byastype(int).Meanwhile,
a[:] = a.astype(int)only update the values of theaarray, not the dtype.
