Numpy 修炼之道(1) —— 什么是 Numpy
Numpy 修炼之道(1) —— 什么是 Numpy
Numpy 是什么
简单来说,Numpy 是 Python 的一个科学计算包,包含了多维数组以及多维数组的操作。
Numpy 的核心是 ndarray 对象,这个对象封装了同质数据类型的n维数组。起名 ndarray 的原因就是因为是 n-dimension-array 的简写。
ndarray 与 python 原生 array 有什么区别
NumPy数组在创建时有固定的大小,不同于Python列表(可以动态增长)。更改ndarray的大小将创建一个新的数组并删除原始数据。
NumPy数组中的元素都需要具有相同的数据类型,因此在存储器中将具有相同的大小。数组的元素如果也是数组(可以是 Python 的原生 array,也可以是 ndarray)的情况下,则构成了多维数组。
NumPy数组便于对大量数据进行高级数学和其他类型的操作。通常,这样的操作比使用Python的内置序列可能更有效和更少的代码执行。
越来越多的科学和数学的基于Python的包使用NumPy数组,所以需要学会 Numpy 的使用。
Numpy 的矢量化(向量化)功能
如果想要将一个2-D数组 a 的每个元素与长度相同的另外一个数组 b 中相应位置的元素相乘,使用 Python 原生的数组实现如下:
for (i = 0; i < rows; i++): {
for (j = 0; j < columns; j++): {
c[i][j] = a[i][j]*b[i][j]; }}
使用 Numpy 实现的话,则可以直接使用矢量化功能:
c = a * b
矢量化代码有很多优点,其中包括:
· 矢量化代码更简洁易读
· 更少的代码行通常意味着更少的错误
· 该代码更接近地类似于标准数学符号(使得更容易,通常,以正确地编码数学构造)
· 矢量化导致更多的“Pythonic”代码。如果没有向量化,我们的代码将会效率很低,难以读取for循环。
脑洞科技栈专注于人工智能与量化投资领域
了解更多干货文章,可以关注小程序八斗问答
- 游戏开发学什么?四步修炼骨灰级高手
- Numpy 修炼之道 (3)—— 数据类型
- Numpy中的flatten是按照什么方式进行工作。
- 我用jieba numpy worldcloud 做了几个小说的词云 大家看看都是谁的什么小说
- 什么是Numpy的ndarray
- 程序员修炼之全栈工程师到底有什么用
- 游戏开发学什么?四步修炼骨灰级高手
- AI学习之路(5): NumPy是什么
- 什么是NumPy
- Numpy 修炼之道 (7)—— 形状操作
- 程序猿十年,我修炼成了什么
- Numpy 修炼之道 (10)—— 结构化数组
- Numpy 修炼之道 (8)—— 常用函数
- 什么是scipy、numpy、matplotlib?
- 读什么,修炼自己成为一个有趣的人
- Numpy 修炼之道 (12)—— genfromtxt函数
- Numpy 修炼之道 (9)—— 广播机制
- 游戏编程之DirectX的修炼:零(随便写点什么)
- 看看自己的Java修炼到什么程度
- 人工智能里的数学修炼 | 是什么决定了你的学习算法泛化性能?偏差—方差分解(bias-variance decomposition)