Home > front end >  Recasting NumPy array slice with astype
Recasting NumPy array slice with astype

Time:09-26

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 array a with the new array return by astype(int).

  • Meanwhile, a[:] = a.astype(int) only update the values of the a array, not the dtype.

  • Related