前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >机器学习储备(10):numpy之RandomState() 和 axis

机器学习储备(10):numpy之RandomState() 和 axis

作者头像
double
发布2018-04-02 14:28:59
6810
发布2018-04-02 14:28:59
举报
文章被收录于专栏:算法channel算法channel

1 RandomState

RandomState是一个伪随机数发生器,这是一个numpy的类,其中包括的方法有:rand,randint,uniform 等。

这个类是含有一个参数:种子数的构造函数,它的取值范围为0~2**32-1的任意整数,可以缺省。

用法举例:

#导入numpy

import numpy as np

#实例化RandomState,种子数设置为1 。

rng = np.random.RandomState(1)

#引用rand生成0~1的2行5列的二维数组

rng.rand(2,5)

生成的二维数组如下所示:

array([[ 4.17022005e-01, 7.20324493e-01, 1.14374817e-04,

3.02332573e-01, 1.46755891e-01],

[ 9.23385948e-02, 1.86260211e-01, 3.45560727e-01,

3.96767474e-01, 5.38816734e-01]])

#引用uniform生成取值范围在0~3的100行2列的均匀分布的二维数组

a = rng.uniform(0,3,(100,2))

2 axis

numpy中许多API的参数都带有:axis,它的作用是什么呢? 请看下面例子:

上面生成的100行2列的二维数组,如果这样求和得到的是什么呢?

np.sum(a,axis=0)

输出结果:

array([ 134.70958663, 156.50550662])

如果这样求和呢?

np.sum(a,axis=1)

输出结果:

array([ 3.41203949, 0.90734084, 0.71728346, 1.59546282, 2.80675262,

3.31324204, 3.24770906, 2.09356531, 2.92798389, 1.01546528,

5.30701843, 3.01724038, 5.31298745, 0.37229698, 3.14391877,

1.55836338, 4.47316445, 3.02217823, 4.5633798 , 2.30529778,

5.21108023, 3.20916996, 1.6533586 , 3.60662895, 1.25341173,

2.09460747, 1.43152433, 1.63480711, 2.16253854, 3.86719169,

1.54917125, 3.32573828, 1.75754959, 3.53605127, 4.59344939,

3.12262986, 2.84000291, 1.6890931 , 3.82582332, 4.43043027,

4.52093489, 3.29952233, 3.49744233, 4.17879371, 3.85541165,

3.19270569, 3.08490524, 1.93549135, 4.43117702, 1.86004572,

2.56110901, 3.72963558, 4.5956858 , 2.83577543, 5.0646593 ,

0.92842877, 4.88824087, 2.46438968, 5.03070217, 2.50738716,

0.13827336, 0.82355267, 4.19657704, 4.18455861, 1.21007098,

4.66606506, 1.73903253, 3.10082084, 3.58489752, 4.83199049,

2.07808638, 0.54378344, 0.45613802, 2.81609496, 1.71681889,

3.11775183, 2.31418109, 2.9884548 , 2.33036523, 5.45054637,

2.20085242, 4.34680985, 0.52610279, 1.66910176, 3.5255427 ,

3.91793569, 2.87965918, 3.88884795, 2.80245735, 1.3092571 ,

2.51967455, 2.45787611, 3.19520899, 2.49868549, 4.34843484,

0.98777358, 4.52173198, 5.51936377, 0.74494098, 4.69738403])

因此,axis总结如下:

axis = 0后,即对第一维求和,结果中看不到这一维;

axis = 1后,即对第二维求和,结果中看不到这一维;

依次类推

再看一个多维数组排序例子:

testX = np.array([[1,9,7],[-10,20,4]])

array([[ 1, 9, 7],

[-10, 20, 4]])

执行操作:np.sort(testX,axis=0)

得到的结果如下:

array([[-10, 9, 4],

[ 1, 20, 7]]) 即axis=0,按照第一维排序二维数组,得到的结果如上。

因此,对于sort这类API的axis总结如下:

axis = 0后,即按照第一维排序,维数不变;

axis = 1后,即按照第二维排序,维数不变;

依次类推

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2017-11-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 程序员郭震zhenguo 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档