大数据之Numpy

匿名 (未验证) 提交于 2019-12-03 00:26:01

1、NumPy(Numerical Python)是Python语言的一个扩充程序库。提供了python对多维数组对象的支持:ndarray,具有矢量运算能力,快速、节省空间。支持高级大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。Numpy内部解除了Python的PIL(全局解释器锁),运算效率极好,是大量机器学习框架的基础库!

numeric python 数字化的python
numpy中最重要的一个形式叫ndarray (n-表示的是n个; d-dimension,维度; array-数组)。

2、Python 本身支持的数值类型有 int(整型,python2 中存在 long 长整型)、float(浮点型)、bool(布尔型) 和 complex(复数型)。

而 Numpy 支持比 Python 本身更为丰富的数值类型。

ndarray:N维数组对象(矩阵),所有元素必须是相同类型.

ndarray属性:ndim属性,表示维度个数;shape属性,表示各维度大小;dtype属性,表示数据类型。

Numpy 中,ndarray 类具有六个参数,它们分别为:

shape:数组的形状。

dtype:数据类型。

buffer:对象暴露缓冲区接口。

offset:数组数据的偏移量。

strides:数据步长。

order:{‘C’,’F’},以行或列为主排列顺序。

在 numpy 中,我们主要通过以下 5 种途径创建数组,它们分别是
1.从 Python 数组结构列表,元组等转换。
2.使用 np.arange、np.ones、np.zeros 等 numpy 原生方法。
3.从存储空间读取数组。
4.通过使用字符串或缓冲区从原始字节创建数组。
5.使用特殊函数,如 random。

numpy.array(object, dtype=None, copy=True, order=None, subok=False, ndmin=0) 
  • object:列表、元组等。
  • dtype:数据类型。如果未给出,则类型为被保存对象所需的最小类型。
  • copy:布尔来写,默认 True,表示复制对象。

除了直接使用 array 方法创建 ndarray,在 numpy 中还有一些方法可以创建一些有规律性的多维数。首先,我们来看一看 arange()。arange() 的功能是在给定区间内创建一系列均匀间隔的值。方法如下:

numpy.arange(start, stop, step, dtype=None)

你需要先设置值所在的区间,这里为 `[开始, 停止),你应该能发现这是一个半开半闭区间。然后,在设置 step 步长用于设置值之间的间隔。最后的可选参数 dtype可以设置返回ndarray 的值类型。

linspace方法也可以像arange方法一样,创建数值有规律的数组。inspace用于在指定的区间内返回间隔均匀的值。其方法如下:

numpy.linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None)
  • start:序列的起始值。
  • stop:序列的结束值。
  • num:生成的样本数。默认值为50。
  • endpoint:布尔值,如果为真,则最后一个样本包含在序列内。
  • retstep:布尔值,如果为真,返回间距。
  • dtype:数组的类型。

numpy.ones 用于快速创建数值全部为 1 的多维数组。其方法如下:

numpy.ones(shape, dtype=None, order='C')
  • shape:用于指定数组形状,例如(1, 2)或 3。
  • dtype:数据类型。
  • order:{‘C’,’F’},按行或列方式储存数组。

zeros 方法和上面的 ones 方法非常相似,不同的地方在于,这里全部填充为 0。zeros 方法和 ones 是一致的。

numpy.zeros(shape, dtype=None, order='C')
  • shape:用于指定数组形状,例如(1, 2)或3。
  • dtype:数据类型。
  • order:{‘C’,’F’},按行或列方式储存数组。

numpy.full用于创建一个自定义形状的数组,可以自己指定一个值,该值填满整个矩阵。

numpy.full(shape,fill_value=num)

numpy.eye 用于创建一个二维数组,其特点是k 对角线上的值为 1,其余值全部为0。方法如下:

numpy.eye(N, M=None, k=0, dtype=<type 'float'>)   #k表示从下标第几个开始
  • N:输出数组的行数。
  • M:输出数组的列数。
  • k:对角线索引:0(默认)是指主对角线,正值是指上对角线,负值是指下对角线。
文章来源: 大数据之Numpy
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!