第一句子网 - 唯美句子、句子迷、好句子大全
第一句子网 > numpy randn 和_人生苦短 自学python——numpy模块

numpy randn 和_人生苦短 自学python——numpy模块

时间:2024-05-14 19:37:35

相关推荐

numpy randn 和_人生苦短 自学python——numpy模块

numpy、pandas、matplotlib、sklearn是python机器学习领域,最核心的几个模块,玩转了这几个模块也就玩转了机器学习,其中,numpy又是这几个模块中最基础的模块。

内置数据结构——ndarray

一、创建ndarray:

1、基于list或tuple

2、基于np.arange:

3、基于np.arange和reshape构建多维数组:

4、基于random构建随机数组:

(1)numpy.random.rand(d0,d1,…,dn)

rand 函数根据给定维度生成 [0,1) 之间的数据,包含 0,不包含 1

dn 表格每个维度

返回值为指定维度的 array

(2)numpy.random.randn(d0,d1,…,dn)

• randn 函数返回一个或一组样本,具有标准正态分布。

• dn 表格每个维度

• 返回值为指定维度的 array

(3)numpy.random.randint(low, high=None, size=None, dtype=“l”)

• 返回随机整数,范围区间为 [low,high),包含 low,不包含 high

• 参数:low 为最小值, high 为最大值, size 为数组维度大小, dtype 为数据类型,默认的数据类型是 np.int

• high 没有填写时,默认生成随机数的范围是 [0, low)

(4)生成 [0,1) 之间的浮点数

• numpy.random.random_sample(size=None)

• numpy.random.random(size=None)

• numpy.random.ranf(size=None)

• numpy.random.sample(size=None)

(5)numpy.random.choice(a, size=None, replace=True, p=None)

• 从给定的一维数组中生成随机数

• 参数:a 为一维数组类似数据或整数;size 为数组维度;p 为数组中的数据出现的概率

• a 为整数时,对应的一维数组为 np.arange(a)

(6)numpy.random.seed()

• np.random.seed() 的作用:使得随机数据可预测。

• 当我们设置相同的 seed,每次生成的随机数相同。如果不设置 seed,则每次会生成不同的随机数

其他方法:

二、ndarray的属性:

1、dtype 属性, ndarray 数组的数据类型,数据类型的种类

2、ndim 属性,数组维度的数量

3、shape 属性,数组对象的尺度,对于矩阵,即 n 行 m 列,shape 是一个元组(tuple)

4、size 属性用来保存元素的数量,相当于 shape 中 n*m 的值

5、itemsize 属性返回数组中各个元素所占用的字节数大小

6、nbytes 属性,数组所需的字节数量,其值等于数组的 size 属性值乘以itemsize 属性值

7、T 属性,数组转置

8、数的实部和虚部属性, real 和 imag 属性

9、flat 属性,返回一个 numpy.flatiter 对象,即可迭代的对象

三、ndarray的数值类型

数据类型

类型转换

1、创建时指定类型

2、使用astype强制转换类型

四、ndarray的形状变化:

1、数组形状转换

• reshape() 和 resize()

函数 resize()的作用跟 reshape()类似,但是会改变所作用的数组,相当于有 inplace=True 的效果• ravel() 和 flatten(),将多维数组转换成一维数组两者的区别在于返回拷贝(copy)还是返回视图(view) , flatten() 返回一份拷贝,需要分配新的内存空间,对拷贝所做的修改不会影响原始矩阵,而 ravel() 返回的是视图(view),会影响原始矩阵

• 用 tuple 指定数组的形状

• 转置

前面描述了数组转置的属性(T),也可以通过 transpose() 函数来实现

2、数组堆叠

• 水平叠加:hstack()\column_stack()

• 垂直叠加:vstack()\row_stack()

• concatenate() 方法,通过设置 axis 的值来设置叠加方向

axis=1 时,沿水平方向叠加

axis=0 时,沿垂直方向叠加

3、数组拆分

跟数组的叠加类似,数组的拆分可以分为横向拆分、纵向拆分以及深度拆分。涉及的函数为 hsplit()、 vsplit()、以及 split()

• 沿横向轴拆分(axis=1)

• 沿纵向轴拆分(axis=0)

五、数组切片与索引

•一维数组切片与索引与列表类似

• 二维数组的切片和索引

•高维数组的切片和索引递归读取各个索引位置

利用数组进行数据分析

一、通用函数:快速的元素级数组函数

二、常用统计函数

常用的函数如下, 请注意函数在使用时需要指定 axis 轴的方向,若不指定,默认统计整个数组。• np.sum(),返回求和

• np.mean(),返回均值

• np.max(),返回最大值

• np.min(),返回最小值

• np.ptp(),数组沿指定轴返回最大值减去最小值,即(max-min)

• np.std(),返回标准偏差(standard deviation)

• np.var(),返回方差(variance)

• np.cumsum(),返回累加值

• np.cumprod(),返回累乘积值

三、利用数据进行数据分析

•数组的广播,数组直接参与数据运算

当数组跟一个标量进行数学运算时,标量需要根据数组的形状进行扩展,然后执行运算。这个扩展的过程称为“广播(broadcasting)”

将条件逻辑表述为数组运算

numpy.where是三元表达式x if condition else y的矢量化

•用于布尔型数组的方法

arr.any():数组中存在一个或多个true,返回true

arr.all():只有数组元素全部是true才返回true

数组排序

np.sort()

唯一化以及其他的集合逻辑

•文件输入输出

•线性代数

numpy.linalg 如:矩阵乘法、矩阵分解、行列式及其他方阵等

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。