一、NumPy 是什么
NumPy 是 Python 科学计算的基础包,它专为进行严格的数字处理而产生。在之前的随笔里已有更加详细的介绍,这里不再赘述。
IPython 发展到现在,它不仅仅只是一个加强版的 Python shell 了,它集成了 GUI 控制台,这可以让你直接进行绘图操作;它还有一个基于 Web 的交互式笔记本和一个轻量级的快速并行的计算引擎。
ndarray 是一个多维的数组对象,具有矢量算术运算能力和复杂的广播能力,并具有执行速度快和节省空间的特点。
ndarray 的一个特点是同构:即其中所有元素的类型必须相同。
array() 函数
最简单的方法是使用 numpy 提供的 array() 函数直接将 Python 数组转换为 ndarray 数组,array() 接受一切序列类型的对象,例如将一个列表转换成 ndarray 数组:
zeros() 函数和 ones() 函数
这两个函数分别可以创建指定长度或形状的全0或全1的 ndarray 数组,比如:
empty() 函数
这个函数可以创建一个没有任何具体值的 ndarray 数组,例如:
需要注意一点的是,这个函数返回的值不一定是 0,可能是其他未初始化的垃圾值。
arange() 函数
这个函数是 Python 内置函数 range 的数组版,使用方法:
在创建 ndarray 数组的时候可以指定元素的数据类型,例如:
所支持的数据类型包括整数、浮点数、复数、布尔值、字符串或是普通的 Python 对象(object)。
在创建 ndarray 数组的时候,如未显示指定类型,它会尝试推断出一个合适的数据类型。
通过 ndarray 的 astype() 方法进行强制类型转换,浮点数转换为整数时小数部分会被舍弃:
如果某字符串类型的数组里的元素全是数字,也可以通过此方法直接转换成数值类型:
astype 会创建一份新的数组,即便是指定为同类型也依然如此。
使用 ndarray 数组可以让我们不需要使用循环就可以对列表里的元素执行操作,语法和对标量元素的操作一样,例如: