numpy随机生成01矩阵_人生苦短,自学python——numpy模块

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

内置数据结构——ndarray

一、创建ndarray:

1、基于list或tuple

numpy随机生成01矩阵_人生苦短,自学python——numpy模块_第1张图片

2、基于np.arange:

numpy随机生成01矩阵_人生苦短,自学python——numpy模块_第2张图片

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

numpy随机生成01矩阵_人生苦短,自学python——numpy模块_第3张图片

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

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

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

  • dn 表格每个维度

  • 返回值为指定维度的 array

numpy随机生成01矩阵_人生苦短,自学python——numpy模块_第4张图片

(2)numpy.random.randn(d0,d1,…,dn)
• randn 函数返回一个或一组样本,具有标准正态分布。
• dn 表格每个维度
• 返回值为指定维度的 array

numpy随机生成01矩阵_人生苦短,自学python——numpy模块_第5张图片

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

• 返回随机整数,范围区间为 [low,high),包含 low,不包含 high
• 参数:low 为最小值, high 为最大值, size 为数组维度大小, dtype 为数据类型,默认的数据类型是 np.int
• high 没有填写时,默认生成随机数的范围是 [0, low)

numpy随机生成01矩阵_人生苦短,自学python——numpy模块_第6张图片

(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)

numpy随机生成01矩阵_人生苦短,自学python——numpy模块_第7张图片

(6)numpy.random.seed()

• np.random.seed() 的作用:使得随机数据可预测。
• 当我们设置相同的 seed,每次生成的随机数相同。如果不设置 seed,则每次会生成不同的随机数

numpy随机生成01矩阵_人生苦短,自学python——numpy模块_第8张图片

其他方法:

numpy随机生成01矩阵_人生苦短,自学python——numpy模块_第9张图片

二、ndarray的属性:

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

e3677e29c19588a06d217399df12576d.png

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

numpy随机生成01矩阵_人生苦短,自学python——numpy模块_第10张图片

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

20bad698d307d96083956342555f9e02.png

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

2140232fa5f8a41aab40b55d319111a1.png

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

727505f0d63213447f9a4a7ce1916b06.png

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

516e623c619ffe03609ed1bda5023aab.png

7、T 属性,数组转置

numpy随机生成01矩阵_人生苦短,自学python——numpy模块_第11张图片

numpy随机生成01矩阵_人生苦短,自学python——numpy模块_第12张图片

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

numpy随机生成01矩阵_人生苦短,自学python——numpy模块_第13张图片

 fa2b9b36ab298def970809858fd2bcac.png

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

numpy随机生成01矩阵_人生苦短,自学python——numpy模块_第14张图片

三、ndarray的数值类型

  • 数据类型

    numpy随机生成01矩阵_人生苦短,自学python——numpy模块_第15张图片

  • 类型转换

    1、创建时指定类型

    numpy随机生成01矩阵_人生苦短,自学python——numpy模块_第16张图片

    2、使用astype强制转换类型

    fe8efdb0c6c7e929cc47581ff91ef43f.png

    四、ndarray的形状变化:

    1、数组形状转换

    • reshape() 和 resize()

    numpy随机生成01矩阵_人生苦短,自学python——numpy模块_第17张图片

    函数 resize()的作用跟 reshape()类似,但是会改变所作用的数组,相当于有 inplace=True 的效果• ravel() 和 flatten(),将多维数组转换成一维数组

    numpy随机生成01矩阵_人生苦短,自学python——numpy模块_第18张图片

两者的区别在于返回拷贝(copy)还是返回视图(view) , flatten() 返回一份拷贝,需要分配新的内存空间,对拷贝所做的修改不会影响原始矩阵,而 ravel() 返回的是视图(view),会影响原始矩阵

numpy随机生成01矩阵_人生苦短,自学python——numpy模块_第19张图片

• 用 tuple 指定数组的形状

numpy随机生成01矩阵_人生苦短,自学python——numpy模块_第20张图片

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

numpy随机生成01矩阵_人生苦短,自学python——numpy模块_第21张图片

2、数组堆叠

numpy随机生成01矩阵_人生苦短,自学python——numpy模块_第22张图片

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

numpy随机生成01矩阵_人生苦短,自学python——numpy模块_第23张图片

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

numpy随机生成01矩阵_人生苦短,自学python——numpy模块_第24张图片

• concatenate() 方法,通过设置 axis 的值来设置叠加方向
axis=1 时,沿水平方向叠加
axis=0 时,沿垂直方向叠加

numpy随机生成01矩阵_人生苦短,自学python——numpy模块_第25张图片

3、数组拆分

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

numpy随机生成01矩阵_人生苦短,自学python——numpy模块_第26张图片

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

numpy随机生成01矩阵_人生苦短,自学python——numpy模块_第27张图片

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

numpy随机生成01矩阵_人生苦短,自学python——numpy模块_第28张图片

五、数组切片与索引

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

• 二维数组的切片和索引

numpy随机生成01矩阵_人生苦短,自学python——numpy模块_第29张图片

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

numpy随机生成01矩阵_人生苦短,自学python——numpy模块_第30张图片

利用数组进行数据分析

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

numpy随机生成01矩阵_人生苦短,自学python——numpy模块_第31张图片

numpy随机生成01矩阵_人生苦短,自学python——numpy模块_第32张图片

二、常用统计函数

常用的函数如下, 请注意函数在使用时需要指定 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随机生成01矩阵_人生苦短,自学python——numpy模块_第33张图片

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

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

numpy随机生成01矩阵_人生苦短,自学python——numpy模块_第34张图片

• 用于布尔型数组的方法

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

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

numpy随机生成01矩阵_人生苦短,自学python——numpy模块_第35张图片

数组排序

np.sort()

numpy随机生成01矩阵_人生苦短,自学python——numpy模块_第36张图片

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

numpy随机生成01矩阵_人生苦短,自学python——numpy模块_第37张图片

•文件输入输出

numpy随机生成01矩阵_人生苦短,自学python——numpy模块_第38张图片

•线性代数

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

numpy随机生成01矩阵_人生苦短,自学python——numpy模块_第39张图片

你可能感兴趣的:(numpy随机生成01矩阵)