类型
type
不变,数值value
取整。
截取整数部分 np.trunc
向上取整 np.ceil
向下取整np.floor
四舍五入取整np.rint类型
type
改变
AA = np.array
AA.astype(np.int)
- 分别用list,np.array 存储数据导致的不同点
# 为了看不同点,生成一个不变的数组
# 如果用list,那么astype就有点麻烦
In [245]: customersAge = [70 * np.random.rand(20)]
In [250]: np.trunc(customersAge)
Out[250]:
array([[ 62., 33., 47., 25., 57., 64., 0., 50., 66., 34., 44.,
45., 14., 40., 48., 45., 5., 50., 29., 35.]])
In [251]: np.ceil(customersAge)
Out[251]:
array([[ 63., 34., 48., 26., 58., 65., 1., 51., 67., 35., 45.,
46., 15., 41., 49., 46., 6., 51., 30., 36.]])
In [252]: np.floor(customersAge)
Out[252]:
array([[ 62., 33., 47., 25., 57., 64., 0., 50., 66., 34., 44.,
45., 14., 40., 48., 45., 5., 50., 29., 35.]])
In [253]: np.rint(customersAge)
Out[253]:
array([[ 62., 33., 47., 25., 58., 64., 0., 50., 67., 35., 44.,
45., 14., 41., 49., 45., 6., 51., 29., 36.]])
# 但这样list不能直接用astype,要把格式换成array...呵呵呵
In [254]: customersAge.astype(np.int)
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
in ()
----> 1 customersAge.astype(np.int)
AttributeError: 'list' object has no attribute 'astype'
In [256]: np.array(customersAge).astype(np.int)
Out[256]:
array([[62, 33, 47, 25, 57, 64, 0, 50, 66, 34, 44, 45, 14, 40, 48, 45, 5,
50, 29, 35]])
# 既然用numpy,最好就是np.array用到底
In [264]: customersAge = np.array( 70 * np.random.rand(20))
In [265]: customersAge.astype(np.int)
Out[265]:
array([57, 31, 59, 0, 27, 6, 25, 23, 54, 18, 33, 17, 67, 66, 24, 57, 45,
64, 62, 47])
- 一个稍不留意就会踩到的坑
** 一个错误的例子,以下的customersAge有点像method,每次执行customersAge都会生成新的随机数组。
In [237]: customersAge = 70 * np.random.rand(20)
In [238]: customersAge
Out[238]:
array([ 3.56159926, 35.18988661, 30.91306022, 48.4666088 ,
55.30506631, 11.90920767, 4.87756428, 1.08342895,
60.72547271, 65.88350747, 23.43454301, 40.15301934,
68.8468645 , 38.89195783, 10.44007659, 69.53010165,
68.42184315, 13.67602042, 42.63655944, 53.05115994])
In [239]:
In [239]: np.trunc(customersAge)
Out[239]:
array([ 3., 35., 30., 48., 55., 11., 4., 1., 60., 65., 23.,
40., 68., 38., 10., 69., 68., 13., 42., 53.])
In [240]: np.ceil(customersAge)
Out[240]:
array([ 4., 36., 31., 49., 56., 12., 5., 2., 61., 66., 24.,
41., 69., 39., 11., 70., 69., 14., 43., 54.])
In [241]: np.floor(customersAge)
Out[241]:
array([ 3., 35., 30., 48., 55., 11., 4., 1., 60., 65., 23.,
40., 68., 38., 10., 69., 68., 13., 42., 53.])
In [243]: np.rint(customersAge)
Out[243]:
array([ 4., 35., 31., 48., 55., 12., 5., 1., 61., 66., 23.,
40., 69., 39., 10., 70., 68., 14., 43., 53.])
In [244]: customersAge.astype(np.int)
Out[244]:
array([ 3, 35, 30, 48, 55, 11, 4, 1, 60, 65, 23, 40, 68, 38, 10, 69, 68,
13, 42, 53])
2018.7.27