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

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后,即按照第二维排序,维数不变;

依次类推

原文发布于微信公众号 - 算法channel(alg-channel)

原文发表时间:2017-11-20

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏chenjx85的技术专栏

leetcode-54-螺旋矩阵

给定一个包含 m x n 个元素的矩阵(m 行, n 列),请按照顺时针螺旋顺序,返回矩阵中的所有元素。

1334
来自专栏Java Web

最长公共子序列问题

问题描述: 求两个字符序列的公共最长子序列。 ---- 最长公共子串 在回到子序列问题之前,先来了解一下子串的问题。 例如,HISH和FISH两个字符序列的公...

3844
来自专栏数值分析与有限元编程

一维变带宽存储刚度矩阵

我们知道,集成之后的整体刚度矩阵是一个对称的稀疏带状矩阵,如图1所示。这样的矩阵包含大量的0元素,占用大量的存储空间。为了节约存储空间,可采取一些方法对刚度矩阵...

4116
来自专栏小樱的经验随笔

Vijos P1497 立体图【模拟】

立体图 描述 小渊是个聪明的孩子,他经常会给周围的小朋友们讲些自己认为有趣的内容。最近,他准备给小朋友讲解立体图,请你帮他画出立体图。 小渊有一块面积为m*n的...

3716
来自专栏专注研发

poj-3185-开关问题

牛一行20他们喝的水碗。碗可以那么(面向正确的为清凉水)或颠倒的(一个位置而没有水)。他们希望所有20个水碗那么,因此用宽鼻子翻碗。

1043
来自专栏前端儿

比较字母大小

任意给出两个英文字母,比较它们的大小,规定26个英文字母A,B,C.....Z依次从大到小。

1130
来自专栏数据结构与算法

拉格朗日插值

存在性和唯一性的证明以后再补。。。。 拉格朗日插值 拉格朗日插值,emmmm,名字挺高端的:joy: 它有什么应用呢? 我们在FFT中讲到过 设n-1次多项式为...

2917
来自专栏Hadoop数据仓库

HAWQ + MADlib 玩转数据挖掘之(三)——向量

一、定义         这里不讨论向量严格的数学定义。在Madlib中,可以把向量简单理解为矩阵。矩阵是Madlib中数据的基本格式,当矩阵只有一维时,就是向...

23810
来自专栏赵俊的Java专栏

Python Numpy 快速入门

1483
来自专栏钱塘大数据

R语言的常用函数速查

一、基本 1.数据管理 vector:向量 numeric:数值型向量 logical:逻辑型向量character;字符型向量 list:列表 data....

3199

扫码关注云+社区

领取腾讯云代金券