Numpy科学计算库


在机器学习中,需要把所有的输入数据都转变为多维数组的形式
数组的形状:描述数组的维度,以及各个维度内部的元素个数
数组的形状用一个元组来表示,它描述了数组的维度和长度

1、创建数组

NumPy
Numeric Python
提供了多维数组、矩阵的常用操作和一些高效的科学计算函数
底层运算通过C语言实现,处理速度快、效率高,适用于大规模多维数组
可以直接完成数组和矩阵运算,无需循环
导入NumPy库

import numpy as np

from numpy import *

创建数组

array ([列表]/(元组))

在这里插入图片描述
数组的属性

属性描述
ndim数组的维数
shape数组的形状
size数组元素的总个数
dtype数组中元素的数据类型
itemsize数组中每个元素的字节数

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
NumPy要求数组中所有元素的数据类型必须是一致的
Python支持的数据类型不足以满足多种科学计算的需求,NumPy增加了多种其他数据类型
在这里插入图片描述

array([列表]/(元组),dtype=数据类型)		#使用dtype指定数组中元素的数据类型

在这里插入图片描述
在使用Python列表或元组,创建NumPy数组时,所创建的数组类型,由原来的元素类型推导而来
创建特殊的数组

函数功能描述
np.arange()创建数字序列数组
np.ones()创建全1数组
np.zeros()创建全0数组
np.eye()创建单位矩阵
np.linspace()创建等差数列
np.logspace()创建等比数列

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
asarray()函数:将列表或元组转化为数组对象
在这里插入图片描述
在这里插入图片描述
数组2没有变化,数组3发生改变
当数据源本身已经是一个ndarray对象时,array()仍然会复制出一个副本,asarray()则直接引用了本来的数组

2、数组运算

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

函数功能描述
np.reshape(shape)不改变当前数组,按照shape创建新的数组
np.resize(shape)改变当前数组,按照shape创建数组

在这里插入图片描述

当改变形状时,应该考虑到数组中元素的个数,确保改变前后,元素总个数相等

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
若数组内的元素个数不同,则无法相加
一维数组可以和多维数组相加,相加时会将一维数组扩展至多维
在这里插入图片描述
数组之间的减法、乘法、除法运算,和加法运算规则相同
当两个数组中元素的数据类型不同时,精度低的数据类型,会自动转换为精度更高的数据类型,然后再进行运算

  • 幂运算:对数组中的每个元素求n次方
    在这里插入图片描述

矩阵运算
矩阵乘法
乘号运算符✖:矩阵中对应的元素分别相乘
在这里插入图片描述
矩阵相乘:按照矩阵相乘的规则运算
在这里插入图片描述
转置和求逆
矩阵转置:np.transpose()
矩阵求逆:np.linalg.inv()
在这里插入图片描述
数组间的运算

函数功能描述
numpy.sum()计算所有元素的和
numpy.prod()计算所有元素的乘积
numpy.diff()计算数组的相邻元素之间的差
np.sqrt()计算各元素的平方根
np.exp()计算各元素的指数值
np.abs()取各元素的绝对值

在这里插入图片描述

轴(axes):数组中的每一个维度称为一个轴
秩(rank):轴的个数(和线性代数中秩的含义不同)

  • 一维数组(rank=1)

在这里插入图片描述

  • 二维数组(rank=2)
    在这里插入图片描述
  • 三维数组(rank=3)
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

数组堆叠运算

np.stack((数组1,数组2...),axis)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
二维数组堆叠
在这里插入图片描述
在这里插入图片描述

3、矩阵和随机数

在这里插入图片描述
在这里插入图片描述

  • 借助NumPy二维数组创建矩阵

在这里插入图片描述

  • 矩阵对象的属性
属性说明
.ndim矩阵的维数
.shape矩阵的形状
.size矩阵的元素个数
.dtype元素的数据类型

在这里插入图片描述
矩阵运算
矩阵相乘
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
非方阵的转置、求逆运算
在这里插入图片描述
在这里插入图片描述
随机数
随机数模块——numpy.random

函数功能描述返回值
np.random.rand(d0,d1,…,dn)元素在[0,1)区间均匀分布的数组浮点数
np.random.uniform(low,high,size)元素在[low,high)区间均匀分布的数组浮点数
np.random.randint(low,high,size)元素在[low,high)区间均匀分布的数组整数
np.random.randn(d0,d1,…,dn)产生标准正态分布的数组浮点数
np.random.normal(loc,scale,size)产生正态分布的数组浮点数

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
伪随机数:由随机种子,根据一定的算法生成的
随机种子:指定随机数生成时所用算法开始的整数值

  • 如果使用相同的seed()值,则每次生成的随机数都相同
  • 如果不设置这个值,则系统根据时间来自己选择这个值,此时每次生成的随机数因时间差异而不同
  • 采用seed()函数设置随机种子,仅一次有效
  • 随机数产生的算法,和系统有关

在这里插入图片描述
打乱顺序函数

np.random.shuffle(序列)

在这里插入图片描述
多维数组只打乱第一维数据
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值