IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> python机器学习基础--numpy库 -> 正文阅读

[人工智能]python机器学习基础--numpy库

numpy库

开源的科学计算基础库
本篇文章参考中国大学MOOC嵩天老师的课程:python数据分析与展示

数据维度的python表示

一维数组
在这里插入图片描述

二维数据
在这里插入图片描述

多维数据
在这里插入图片描述

高维数据
在这里插入图片描述

数组对象ndarray

数据对象特点

  1. 数组对象可以去掉元素间运算所需的循环,使一维向量更像单个数据
  2. 设置专门的数组对象,可以提升这类应用的运算速度
  3. 数组采用相同的数据类型,有利于节省运算和储存空间

关于ndarray

  1. ndarray是一个多维数组对象,由两部分构成
    (1)实际的数据
    (2)描述这些数据的元数据(数据维度、数据类型等等)
  2. ndarray数组要求所有数据类型相同,数据下标从0开始
  3. 在程序中,ndarray的别名是array
  4. np.array()将数组输出为[ ]形式,元素之间由空格分开
    轴(axis)用于保存数据的维度
    秩(rank)轴的数量

ndarray对象的属性

属性描述
.ndim
.shape对象的形状,对应矩阵的n行m列
.size对象元素的个数
.dtype对象中元素类型
.itemsize对象中每个元素的大小,以字节为单位

ndarray对象的意义

  1. 去掉元素间运算所需的循环,使得一维向量更像单个数据
  2. 数组对象采用相同的数据类型,有助于节省运算和存储空间

数组创建与变换

创建方法

  1. 利用列表、元组等类型创建ndarray

在这里插入图片描述

  1. 使用numpy中的函数创建
函数描述
numpy.arange(n)返回ndarray类型,元素从0到1
ones(shape)生成一个全1的数组,
zeros(shape)生成一个全0的数组
full(shape,val)根据shape生成一个数组,每个元素都是val
eye(n)生成一个正方n*n的单位矩阵,对角线为1,其余为0
ones_like(a)根据a的形状生成一个全1的数组
zeros_like(a)根据a的形状生成一个全0的数组
full_like(a,val)根据a的形状生成一个每个元素都是val的数组

在这里插入图片描述

  1. 其他方法创建
函数描述
linspace()根据起止数据等间距填充数据形成数组
concatenate()将两个或多个数组合并成一个新的数组

在这里插入图片描述

数组变换

对于创建后的数组进行维度变换或元素类型变换
维度变换

方法描述
reshape(shape)不改变数组元素,返回一个shape形状的数组,不改变原数组
resize(shape)与reshape功能相同,改变原数组
swapaxes(ax1,ax2)将数组两个维度调换
flatten()对数组降维,返回折叠后的一维数组,原数组不变

下面我们来看看这些方法的作用

在这里插入图片描述

类型转换

函数描述
.astype(newtype)创建新的数组,数据相同,类型也可能相同
.tolist()数组向列表转换

从下面的例子中我们可以看出,转换数组元素的类型时并未改变原数组,此外,如果参数newtype使用numpy中的数据类型时未知名精度,程序会提出警告
在这里插入图片描述
下面我们生成一个列表
数组转换为列表

数组操作

索引和切片
一维数组索引
在这里插入图片描述
多维数组索引
在这里插入图片描述

多维数组切片
在这里插入图片描述

数组运算

数组与标量之间的运算

数组中的每一个元素参与运算
在这里插入图片描述

一元函数
对数组中的数据执行元素级运算

函数描述
np.abs(x) /np.fabs(x)求数组x各元素的绝对值
np.sprt(x)求数组x中各元素平方根
np.square(x)各元素平方
np.logn(x)(n为底数)求各元素对数值
np.ceil(x)求各元素ceiling值
np.rint(x)各元素四舍五入的值
np.modf(x)将各元素小数部分和整数部分分为两个独立的数组返回
np.sin()/cos()…各元素的三角函数值
np.exp(x)各元素指数值
np.sign(x)各元素符号值,-1(-),0,1(+)

在这里插入图片描述

二元函数
两个数组之间的元素运算

函数描述
+、-、*、/、**两个数组各元素对应进行运算
np.copysign(x,y)将y中各元素符号赋值给数组x对应的元素
<、>、<=、>=、!=、==算术比较,产生布尔类型
np.mod(x,y)元素级模运算

在这里插入图片描述

numpy数据存取

csv文件存储

语法格式:np.savetxt(frame,array,format,delimiter)

参数描述
frame文件(可以是压缩文件),字符串或产生器
array存入文件的数组
format写入文件的格式,如%d,%f
delimiter分割字符串,默认空格

案例1:使用下面代码生成一个csv文件1

在这里插入图片描述

打开文件我们可以看到里面的数据
在这里插入图片描述

csv文件读取

语法格式2np.loadtxt(frame,dtype,delimiter,unpack)

参数描述
frame文件(可以为压缩文件),字符串或产生器
dtype数据类型
delimiter分割字符串
unpack为True时,读入变量被写入不同属性

案例2:使用loadtxt()函数读取一个csv文件

在这里插入图片描述

多维数据存取

多维数据存储
语法格式:array.tofile(frame,sep,format)

参数名描述
frame文件,字符串
seq分割字符串
format写入文件的数据格式,如%d

多维数据读取
语法格式:np.fromfile(frame,dtype,count,sep)

参数描述
frame文件,字符串
dtype读取数据类型
count读入元素个数
sep数据分割字符串

这种方法存取时需要知道存入文件时数组的维度和元素类型3

案例3:存储并读取一个包含维数据的文件

在这里插入图片描述

随机数函数

np.random的随机数函数

函数描述
rand(d0,d1,…dn)根据d0-dn创建随机数数组,浮点数,范围[0,1),均匀分布
randn(d0,d1…dn)根据d0-dn创建随机数函数,正态分布
ranint(low,high,shape)根据shape创建随机整数,范围为(low,high)
seed(s)随机数种子s
shuffle(a)根据数组第一个轴随机排列,改变原数组
permutation(a)根据数组第一个轴随机排列,不改变原数组
choice(a[,size,replace,p])从一维数组中以概率p抽取元素,形成size形状的新数组,replace代表是否可以重用元素,默认Flase
uniform(low,high,size)产生具有均匀分布的数组,范围(low,high),size代表形状
normal(loc,scale,size)产生具有正态分布的数组,loc代表均值,scale代表标准差,size代表形状
poisson(lam,size)产生具有泊松分布的数组,lam代表随机事件发生率,size代表形状

案例4:使用随机数函数生成随机数组

在这里插入图片描述
下面我们对生成的数组进行变化

在这里插入图片描述
下面我们分别生成具有均匀分布和正态分布特征的数组
在这里插入图片描述

统计函数

函数描述
sum(a,axis)根据axis 计算数组a中相关元素之和
mean(a,axis)根据axis计算数组a相关元素期望
average(a,axis,weights)根据axis计算数组a相关元素加权平均值
std(a,axis)根据axis计算数组a相关元素标准差
var(a,axis)根据axis计算数组a相关元素方差
min(a)/max(a)计算数组中的最小/最大元素
argmin(a)/argmax(a)数组中最小/最大元素降一维对应的下标
unravel_index(index,shape)将一维坐标转换为多维shape状
ptp(a)数组中最小和最大元素数值之差
median(a)数组中元素的中位数

案例5:使用统计函数进行计算

在这里插入图片描述
下面我们尝试获得数组中的最小和最大值
在这里插入图片描述

梯度函数

函数描述
np.gradient(f)计算数组f中元素的梯度,当f为多维,返回每个维度的梯度1

案例6:梯度函数小测

在这里插入图片描述


  1. 梯度是连续值之间的变化率,即斜率 ?? ??

  2. 注意:
    1, csv只能有效存储一维和二维数据
    2, np中的存储和读取函数都只能有效存储一维和二维数据 ??

  3. 多维数据存储(tofile()函数)和读取方法(fromfile()函数)需要配合使用,可以通过元数据文件来存储额外信息 ??

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2021-10-06 12:14:10  更:2021-10-06 12:15:57 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/27 10:18:58-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码