一、NumPy的用途
NumPy(Numerical Python)是 Python 语言的一个扩展程序库,是一个高效计算工具,不同于普通编程中变量计算,具有以下特点:
- 可以进行n维数组的高效计算,具有矢量运算能力,且快速,节省空间;
- 能进行线性代数、傅立叶变换等多种高效科学运算,可对整组数据进行快速运算的标准数学函数;
- 有丰富的随机数功能;
- 有丰富的数组处理功能,可以进行广播计算;
NumPy 为开放源代码并且由许多协作者共同维护开发。
二、NumPy使用基础
使用NumPy时,需要先行导入numpy包:
import numpy as np
之后就可以利用缩写的np使用numpy包了,在以下的讲述中,数组、矩阵都指的是ndarray对象(N 维数组对象)。
数组对象:
NumPy的数组类称为ndarray,也是N维数组的别名,它是一系列同类型数据的集合,以 0 下标开始对集合中的元素进行索引的。NumPy的基础计算对象是数组,NumPy的数组与Python的列表list不同,list中的元素可以是不同类型,而NumPy数组中的元素都为一种类型。
使用NumPy构建数组需要两个关键参数:shape
(数组形状)和dtype
(类型)
1.利用ndarray构造方法创建数组:
>>> import numpy as np
>>> a = np.ndarray(shape=(2,3),dtype=float)
>>> a
array([[5.50148290e+222, 5.34753902e+246, 8.50060723e-096],
[4.27255707e+180, 1.03471377e-259, 6.94168483e-310]])
>>>
其结果是一个2行3列的float类型的随机数组。当然更多维数组也可以:
>>> a = np.ndarray(shape=(2,3,5),dtype=float)
>>> a
array([[[ 1.28822975e-231, -1.29074164e-231, -7.90505033e-323,
0.00000000e+000, 2.12199579e-314],
[ 0.00000000e+000, 0.00000000e+000, 0.00000000e+000,
1.75871011e-310, 3.50977866e+064],
[ 0.00000000e+000, 3.97645035e-309, nan,
nan, 3.50977942e+064]],
[[ 1.13813711e-308, 0.00000000e+000, 0.00000000e+000,
-0.00000000e+000, 0.00000000e+000],
[ 2.12199579e-314, 0.00000000e+000, 0.00000000e+000,
0.00000000e+000, 1.75871011e-310],
[ 3.50977866e+064, 0.00000000e+000, 0.00000000e+000,
nan, nan]]])
>>> type(a)
<class 'numpy.ndarray'>
>>> a.dtype
dtype('float64')
>>> a.shape
(2, 3, 5)
>>>
其中<class 'numpy.ndarray'>
表示:a是ndarray数组对象。dtype('float64')
表示:所有元素的类型是64位(8byte)的浮点型。(2, 3, 5)
是个元组,表示数组的形状是三维数组空间。
在ndarray构造方法中的dt