机器学习(一):numpy

一、numpy的介绍

1.ndarray的介绍

ndarray是一个n维数组类型,用ndarray进行存储数据

2.ndarray的使用

导入numpy包: import numpy as np
创建ndarray数组: 数组名 = np.array([[数组],[数组],[数组]])

ndarray对比python的优势: 运行与计算速度比python快,底层是用c语言写的,不受python解释器限制

3.ndarray的属性

机器学习(一):numpy_第1张图片

4.ndarray的形状

有一维数组,二维数组,三维数组等类型,他们都有不同的形状
主要是看np.darray的中括号数量可以判断是几维数组
机器学习(一):numpy_第2张图片

5.ndarray的类型

当你需要指定数组的类型的时候,可以在数组后面跟上dtype= np. int/float/bool/string

二、创建数组

1.创建0,1数组与固定范围数组

创建数组: 数组名 = np.ones([数组行列]) / 数组名 = np.zeros([数组行列])
创建相同类型的数组: 数组名 = np.ones_like(其他数组名) / 数组名 = np.zeros_like(其他数组名)

2.从现有数组中生成

深拷贝: np.array(已经生成的数组a)
将数组重新拷贝到一块代码中去

浅拷贝: np.asarray(已经生成的数组a)
将数组指针直到已经生成的数组中去,相当于指向了一个索引

3.生成固定范围的数组(等差数组与等比数组)

创建指定数量的等差数组: np.linspace(初始值,结束值,生成的个数 (默认50) )
创建指定步长的等差数组: np.arange(起始值,终止值,步长 (默认为1))

创建指定数量的等比数组: np.logspace(起始值,终止值,生成的个数) 指10的几次方

4.生成随机数组

4.1 正态分布

μ 代表分布的左右(正数为右,负数往左) 平均值
σ 代表走线的高低(越小峰值越高,越大峰值越低)方差
标准正态分布: μ = 0,σ = 1时为标准正态分布
机器学习(一):numpy_第3张图片

4.2 生成正态分布数组

创建正态分布数组: 数组名 = np.random.normal(均值(μ),标准差(σ),生成的个数) 生成的个数也可以设置为几行几列

4.3 均匀分布

创建均匀分布数组: np.random.uniform(下限,上限, 生成的个数)

三、数组的索引和切片

1.数组的索引

举例:
二维数组的索引,score[0,[0:3]] 在score数组中选取第0行的第0到第2个数据(数据遵循前开后闭原则)
三维数组的索引,score[0,1,2] 在score数组中选取第0个数组块,第2个数组单元里面的第三个数据

2.数组形状的修改

①数组名.reshape([几行几列]) 其中行列可以写-1代表目前还不知道写几行或者几列,交给计算机处理
②数组名.resize([几行几列]) 这是直接修改数组的代码,用完之后直接改变数组
③数组名.T 数组进行转置

3.数组类型的修改

数组名.astype(想修改的数组类型)

4.数组的去重

np.unique(数组名)

四、ndarray的运算

1.逻辑运算

例如:score > 60 可以直接做bool类型的判断
机器学习(一):numpy_第4张图片
赋值运算:score[score > 60]= 1,将所有大于60的数变为1

2.通用判断函数

np.all(): 要求必须要全部满足才可以
np.any(): 只需要有一个满足条件就可以

3.三元运算符

①np.where(判断条件,就怎么样,否则怎么样)

②np.logical_and() 逻辑且运算
③np.logical_or() 逻辑或运算

注:①可以与②③连起来使用,例如np.where(np.logical_and(t>1),1,0)

4.统计运算

求最大值: np.max(数组名,axis= 0 按行看最大值 )
求最小值: np.min(数组名, axis= 1 按列求最大值 )
求平均值: np.mean(数组名)

求最大值是第几个数字: np.argmax(数组名,axis=)
求最小值是第几个数字: np.argmin(数组名,axis=)

5.矩阵运算

矩阵相乘:
np.dot(矩阵1,矩阵2)
np.matmul(矩阵1,矩阵2) matmul不支持矩阵与标量的乘积

你可能感兴趣的:(机器学习,numpy,python)