本帖最后由 马财旺 于 2018-4-27 17:16 编辑
NumPy基础:数组和矢量计算 关于NumPy库我们做一个了解,NumPy(Numerical Python的简称)是高性能科学计算和数据分析的基础包,他是所有高级工具的构建基础,其部分功能如下: - ndarray,一个具有矢量算术运算和复杂广播能力的快速且节省空间的多位数组。
- 用于对整组数据进行快速运算的标准数学函数(不需要编写循环)。
- 用于读写磁盘数据的工具以及用于操作内存映射文件的工具。
- 线性代数,随机数生成以及傅里叶变换功能。
- 用于集成由C,C++等语言编写的代码工具。
由于NumPy提供了一个简单易用的CAPI,因此很容易将数据传递给由低级语言编写的外部库,外部库也能以NumPy数组的形式将数据返回给Python。这个功能使Python成为一种包装C/C++历史代码库的选择,并使被包装库拥有一个动态的,易用的接口。 创建ndarray 创建数组最简单的方法就是使用array函数。它接受一切序列型的对象(包括其他数组),然后产生一个新的含有传入的数据的NumPy数组。以一个列表的转换为例: 嵌套序列(比如由一组等长列表组成的列表)将会被转换为一个多维数组: 除非显式说明,np.array会尝试为新建的这个数组推断出一个较为合适的数据类型。数据类型保存了一个特殊的dtype对象中。比如上面两个例子中,我们有: 除np.array之外,还有一些函数也可以新建数组。比如,zeros和ones分别可以创建指定长度或形状的全0或全1数组。empty可以创建一个没有任何具体值的数组。要用这些方法创建多维数组,只需要传入一个表示形状的元组即可: arange是Python内置函数range的数组版: 下表中列出了一些数组创建函数。 函数 | 说明 | array | 将输入数据(列表,元组,数组或其他序列类型)转换为ndarray.要么推断出dtype,要么显式指定dtype。默认直接复制输入数据 | asarray | 将输入转换为ndarray,如果输入本身就是一个ndarray就不进行复制 | arange | 类似于内置的range,但返回的是一个ndarray而不是列表 | oness,ones_like | 根据指定的形状和dtype创建一个全1数组。ones_like以另一个数组为参数,并根据其形状和dtype创建一个全1数组 | zeros,zeros_like | 类似于ones和ones_like,只不过产生的是全0数组而已 | empty,empty_like | 创建新数组,只分配内存空间但不填充任何值 | 续言 虽然NumPy提供了这些功能的计算基础,但你可能还是想将pandas作为数据分析工作的基础(尤其是对于结构化或表格化数据),因为它提供了能使大部分常见的数据任务变得非常简洁的丰富高级接口。pandas还提供了一些Numpy所没有的更多领域特定的功能,如时间序列处理等。 |