Numpy基础

4.0 学习目标

  • 目标
    • 了解Numpy预算速度上的优势
    • 知道Numpy的数组内存块风格
    • 知道Numpy的并行化运算
  • 应用
    • 机器学习、深度学习各种框架的基础库

4.1 Numpy的优势

1 numpy
什么是Numpy?

Numpy是一个开源的python科学计算库用于快速处理任意维度的数组。

Numpy支持常见的数组和矩阵操作。使用ndarray存储对象来处理多维数组,该对象是一个快速而灵活的大数据容量。

2 ndarray
如何创建?

np.array()

3 Numpy的优势是什么?
  1. 内存块风格——体式存储
  2. 支持并行化运算
  3. 效率高于纯python代码
  4. 底层使用了C,内部释放了GTL

4.2 Numpy为数组-ndarray

1 ndarray的属性

在这里插入图片描述

​ 属性名字 属性解释
​ ndarray.shape 数组维度的元组
​ ndarray.ndim 数组维数
​ ndarray.size 数组中的元素数量
​ ndarray.itemsize 一个数组元素的长度(字节)
​ ndarray.dtype 数组元素的类型

2 形状

在这里插入图片描述

3 类型
d = np.array([1,2,3], dtype=np.float32)
d

4.3 基本操作

1 生成数组的方法
1.1 生成0和1的数组
  • np.ones(shape[,dtype,order])
    在这里插入图片描述

  • np.ones_like(a[, dtype, order,subok])

  • np.zeros(shape[,dtype,order])

  • np.zerps_like(a[,dtype,order,subok])

1.2 从现有数组生成
1.2.1 生成方式
  • np.array()
  • np.asaarray()
1.3 生成固定范围数组
  • np.linspace() ——生成等间隔的多少个
  • np.arrange() —— 每间隔多少生成数据
  • np.logspace() —— 生成以10的N次幂的数据
1.4 生成随机数组 np.random()

​ 1.均匀分布生成
​ np.random.uniform()
​ low
​ high
​ size
​ 2.正态分布[*]
​ 均值,方差
​ 均值 – 图形的左右位置
​ 方差 – 图像是瘦,还是胖
​ 值越小,图形越瘦高,数据越集中
​ 值越大,图形越矮胖,数据越分散
​ 3.正态分布api[
]
​ np.random.normal()
​ low
​ high
​ size

2.数组的索引、切片[***]

​ 直接索引
​ 先对行进行索引,再进行列索引 – [*, #]
​ 高维数组索引,从宏观到微观

3.形状修改[**]

​ 1.对象.reshape
​ 不进行行列互换,产生新变量
​ 2.对象.resize
​ 不进行行列互换,对原值进行更改
​ 3.对象.T
​ 进行行列互换

shape是查看数据有多少行多少列
reshape()是数组array中的方法,作用是将数据重新组织

在这里插入图片描述

新的形状应该与原来的形状兼容,即行数和列数相乘后等于a中元素的数量。

4.类型修改[*]

​ 对象.astype(np.int32)

5.数组去重[*]

​ np.unique()


4.4 ndarray运算

1.逻辑运算

​ 大于,小于直接进行判断
​ 赋值:满足要求,直接进行赋值

2.通用判断函数

​ np.all()
​ 所有满足要求,才返回True
​ np.any()
​ 只要有一个满足要求,就返回True

3.三元运算符

​ np.where()
​ 满足要求,赋值第一个值,否则赋值第二个值
​ np.logical_and()
​ 并
​ np.logical_or()
​ 或

4.统计运算

​ min
​ max
​ midian
​ mean
​ std – 标准差
​ var – 方差
​ argmax – 最大值下标
​ argmin – 最小值下标

4.5 矩阵

1.矩阵和向量

​ 矩阵:理解-二维数组
​ 向量:理解-一维数组

2.加法和标量乘法

​ 加法: 对应位置相加
​ 乘法: 标量和每个位置的元素相乘

3.矩阵向量(矩阵)乘法[*****]

​ [M行, N列]*[N行, L列] = [M行, L列]

4.矩阵乘法性质

​ 1.满足结合律,不满足交换律

5.单位矩阵

​ 对角线为1,其他位置为0的矩阵

6.逆

​ 矩阵A*矩阵B=单位矩阵I
​ 那么A和B就互为逆矩阵

7.转置

​ 行列互换

4.6 数组间运算[*]

1.数组和数字是直接可以进行运算
2.数组和数组

​ 需要满足广播机制: (或)
​ 1.维度相同
​ 2.shape对应位置为1

如 [2,6]+[2,1]可以进行运算 (都属于两维)

3.矩阵乘法api

np.dot –点乘
​ np.matmul – 矩阵相乘

​ 注意:两者之间在进行矩阵相乘时候,没有区别
​ 但是,dot支持矩阵和数字相乘

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
NumPy是一个功能强大的Python库,主要用于对多维数组执行计算。它的使用可以使代码更简洁,并且具有一些特性,如向量化操作,可以加速计算过程。在NumPy中,最重要的数据结构是NumPy数组,它可以通过不同的方法进行创建。 创建一维NumPy数组的常见方法有以下几种: 1. 使用np.array()函数,传入一个列表作为参数,例如: my_array = np.array([1, 2, 3, 4, 5]) 2. 使用np.array()函数,传入一个元组作为参数,例如: my_array2 = np.array((0, 1, 2, 3, 4)) 3. 使用np.arange()函数,该函数类似于内置函数range(),返回一个数组而不是列表,例如: my_array3 = np.arange(5) 4. 使用np.linspace()函数,该函数返回一个包含指定数量元素的数组,而不是指定步长(step),例如: my_array4 = np.linspace(0, 2*np.pi, 5) 这些方法可以用来创建不同类型的一维NumPy数组。通过打印数组可以查看创建的结果。在使用NumPy之前,需要导入NumPy库,可以使用import numpy as np语句进行导入。 NumPy还可以用于执行各种数学任务,如数值积分、微分、内插、外推等,以及快速处理图像等。因此,在机器学习中,NumPy常被用于存储训练数据和机器学习模型的参数,以及进行简单和快速的计算。 总结起来,NumPy提供了丰富的功能和优秀的库函数,使得在Python中进行数值计算变得更加方便和高效。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [python科学计算的基本包-Python科学计算基本包Numpy使用的教程.pdf](https://download.csdn.net/download/qq_43934844/87898289)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [numpy基础语法整理](https://blog.csdn.net/weixin_61890283/article/details/124596265)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值