前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布

Numpy

作者头像
昱良
发布2018-04-08 12:11:26
1K0
发布2018-04-08 12:11:26
举报
文章被收录于专栏:机器学习算法与Python学习

Numpy

Numpy是Python中用于科学计算的核心库。它提供了高性能的多维数组对象,以及相关工具。(本文文末的原文链接为numpy的官方文档)

NumPy系统是Python的一种开源的数值计算扩展。这种工具可用来存储和处理大型矩阵,比Python自身的嵌套列表(nested list structure)结构要高效的多(该结构也可以用来表示矩阵(matrix))。包括:1、一个强大的N维数组对象Array;2、比较成熟的(广播)函数库;3、用于整合C/C++和Fortran代码的工具包;4、实用的线性代数、傅里叶变换和随机数生成函数。numpy和稀疏矩阵运算包scipy配合使用更加方便。提供了许多高级的数值编程工具,如:矩阵数据类型、矢量处理,以及精密的运算库。

数组

一个numpy数组是一个由不同数值组成的网格。网格中的数据都是同一种数据类型,可以通过非负整型数的元组来访问。维度的数量被称为数组的阶,数组的大小是一个由整型数构成的元组,可以描述数组不同维度上的大小。

我们可以从列表创建数组,然后利用方括号访问其中的元素:

另外还有以下方式创建初始数组

np.ones((m,n))

np.zeros((m,n))

np.eye(n)

np.full((m,n),k)

np.random.random((m,n))

访问数组

Numpy提供了多种访问数组的方法。其中切片语法是numpy数组中重要的一种数组访问方式。因为数组可以是多维的,所以你必须为每个维度指定好切片。如下所示。

当我们使用切片语法访问数组时,得到的总是原数组的一个子集。整型数组访问允许我们利用其它数组的数据构建一个新的数组。

数学计算

基本数学计算函数会对数组中元素逐个进行计算,既可以利用操作符重载,也可以使用函数方式。

这儿一定要注意*是点乘,并不是矩阵乘,真正的矩阵乘如下所示。

广播机制

广播是一种强有力的机制,它让Numpy可以让不同大小的矩阵在一起进行数学计算。我们常常会有一个小的矩阵和一个大的矩阵,然后我们会需要用小的矩阵对大的矩阵做一些计算。

对两个数组使用广播机制要遵守下列规则:

1. 如果数组的秩不同,使用1来将秩较小的数组进行扩展,直到两个数组的尺寸的长度都一样。

2. 如果两个数组在某个维度上的长度是一样的,或者其中一个数组在该维度上长度为1,那么我们就说这两个数组在该维度上是相容的。

3. 如果两个数组在所有维度上都是相容的,他们就能使用广播。

4. 如果两个输入数组的尺寸不同,那么注意其中较大的那个尺寸。因为广播之后,两个数组的尺寸将和那个较大的尺寸一样。

5. 在任何一个维度上,如果一个数组的长度为1,另一个数组长度大于1,那么在该维度上,就好像是对第一个数组进行了复制。

具体细节需要的请查看官方文档:

https://docs.scipy.org/doc/numpy/reference/

参考博文:知乎-智能单元(https://zhuanlan.zhihu.com/p/20878530?refer=intelligentunit)

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2016-12-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 机器学习算法与Python学习 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档