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(默认)是指主对角线,正值是指上对角线,负值是指下对角线。