numpy的基本使用

1. Numpy介绍

  • Numpy(Numerical Python)是一个开源的Python科学计算库,用于快速处理任意维度的数组。
  • Numpy支持常见的数组和矩阵操作。对于同样的数值计算任务,使用Numpy比直接使用Python要简洁的多。
  • Numpy使用ndarray对象来处理多维数组,该对象是一个快速而灵活的大数据容器。

2 ndarray介绍

NumPy提供了一个N维数组类型ndarray,它描述了相同类型的“items”的集合

3 ndarray与Python原生list运算效率对比

ndarray的计算速度要快很多,节约了时间。
机器学习的最大特点就是大量的数据运算,那么如果没有一个快速的解决方案,那可能现在python也在机器学习领域达不到好的效果。
Numpy专门针对ndarray的操作和运算进行了设计,所以数组的存储效率和输入输出性能远优于Python中的嵌套列表,数组越大,Numpy的优 势就越明显。

4 ndarray的优势

4.1 内存块风格

在这里插入图片描述
这是因为ndarray中的所有元素的类型都是相同的,而Python列表中的元素类型是任意的,所以ndarray在存储元素时内存可以连续,而python 原生list就只能通过寻址方式找到下一个元素,这虽然也导致了在通用性能方面Numpy的ndarray不及Python原生list,但在科学计算中,Numpy 的ndarray就可以省掉很多循环语句,代码使用方面比Python原生list简单的多。

  • numpy内置了并行运算功能,当系统有多个核心时,做某种计算时,numpy会自动做并行计算
  • Numpy底层使用C语言编写,内部解除了GIL(全局解释器锁),其对数组的操作速度不受Python解释器的限制,所以,其效率远高于纯 Python代码。

5. ndarray基础

5.1 ndarray的属性

在这里插入图片描述

5.2 ndarray的使用

在这里插入图片描述

5.3 ndarray的属性

在这里插入图片描述

5.4 数组的形状

在这里插入图片描述

5.5 数组的类型

在这里插入图片描述

5.6 数组的基本操作

1.生成数组的方式

  • 生成0、1数组
    在这里插入图片描述
  • 从现有数组中生成
    在这里插入图片描述
  • 生成固定范围的数组

np.linspace (start, stop, num, endpoint)
创建等差数组 — 指定数量
参数:
start:序列的起始值
stop:序列的终止值
num:要生成的等间隔样例数量,默认为50
endpoint:序列中是否包含stop值,默认为ture

np.arange(start,stop, step, dtype)
创建等差数组 — 指定步长
参数step:步长,默认值为1

np.logspace(start,stop, num)
创建等比数列
参数:
num:要生成的等比数列数量,默认为50

在这里插入图片描述

  • 生成随机数组
    正态分布
    在这里插入图片描述
    均匀分布
    在这里插入图片描述

5.7 数组的索引和切片

在这里插入图片描述

5.8 形状修改

在这里插入图片描述

5.9 类型修改

在这里插入图片描述

5.10 数组的去重

在这里插入图片描述

6. ndarray的运算

6.1 逻辑运算

在这里插入图片描述

6.2 通用判断函数

在这里插入图片描述

6.3 np.where(三元运算符)

在这里插入图片描述

6.4 统计运算

在这里插入图片描述

6.5 数组间的运算

在这里插入图片描述

广播机制实现了时两个或两个以上数组的运算,即使这些数组的shape不是完全相同的,只需要满足如下任意一个条件即可。 如果两个数组的后缘维度(trailing dimension,即从末尾开始算起的维度)的轴长度相符, 或其中的一方的长度为1。

6.6 矩阵的运算

在这里插入图片描述

np.matmul和np.dot的区别: 二者都是矩阵乘法。 np.matmul中禁止矩阵与标量的乘法。 在矢量乘矢量的內积运算中,np.matmul与np.dot没有区别。

在这里插入图片描述

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
NumPy是在python中处理数据的最基本和最强大的包。 如果您打算从事数据分析或机器学习项目,那么对numpy的充分理解几乎是必须的。 其他用于数据分析的软件包(如pandas)是建立在numpy之上,用于构建机器学习应用的scikit-learn软件包也在numpy上运行。 但对于.NET开发人员来说,却没有这样的强大工具库。 虽然有像Deedle和Math.NET这样的开源库,但它们不是很容易使用,也不能借用很多现有的python代码。 NumSharp(Numerical .NET)可以说是C#中的线性代数库。 它是用C#编写的,符合.netstandard 2.0库标准。 它的目标是让.NET开发人员使用NumPy的语法编写机器学习代码,从而最大限度地借鉴现有大量在python代码的转译成本。 NumSharp使用最新的Span技术安全高效地访问内存,优化每个模拟API的性能,确保最底层的NDArray达到最佳性能状态。NumSharp对于在数组上执行数学和逻辑运算非常有用。 它为.NET中的n阵列和矩阵的操作提供了大量有用的功能。 让我们给出一个代码片段来说明如何使用NumSharp。 // 初始化一个NumSharp实例,类名故意叫NumPy var np = new NumPy(); // 产生一个数字0到9的向量 np.arange(10) // 产生一个3维张量 np.arange(12).reshape(2, 3, 2); // 产生10个0到9的随机数,并转换成5*5的矩阵 np.random.randint(low: 0, high: 10, size: new Shape(5, 5)); 上面的代码是不是看起来否非常接近python代码?简直就是如出一辙。NumSharp的目的就是让你可以轻松的复制粘贴Python代码。 如何安装: PM> Install-Package NumSharp   NumSharp 已被如下项目使用: Pandas.NET Bigtree.MachineLearning CherubNLP BotSharp 标签:numpy

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值