Python数据分析(一):NumPy
一、数据的维度
一个数据:表达一个含义,如:3.14
一组数据:表达一个或多个含义,如:3.14,3.134
维度:一组数据的组织形式
1、一维数据
一维数据由对等关系的有序或无序数据构成,采用线性方式组织。
3.1413,3.1398,3.1404,3.1401,3.1349,3.1376
对应列表、数组和集合等概念
2、列表和数组
一组数据的有序结构
区别:
- 列表:数据类型可以不同
- 数组:数组类型相同
3、二维数据
二维数据由多个一维数据构成,是一组数据的组合形式。
表格是典型的二维数据,其中,表头是二维数据的一部分。
4、多维数据
多维数据由一维或者二维数据在新维度上扩展形成。
5、高维数据
高维数据仅利用最基本的二元关系展示数据间的复杂结构。(键值对)
6、数据维度的Python表示
- 一维数据:列表和集合类型
[ 3.1398,3.1349,3.1376 ] 有序
{ 3.1398,3.1349,3.1376 } 无序
- 二维数据:列表类型
- 多维数据:列表类型
[ [ 3.1398,3.1349,3.1376 ] ,
[ 3.1398,3.1349,3.1376 ] ]
- 高维数据:字典类型或数据表示格式
dict = {
“firstName” : “Tian”,
“lastName” : “Song” ,
}
二、NumPy
NumPy是一个开源的Python科学计算基础库。
- 一个强大的N维数组对象ndarray
- 广播功能函数
- 整合C/C++/Fortran代码的工具
- 线性代数、傅里叶变换、随机数生成等功能
NumPy是SciPy、Pandas等数据处理或科学计算库的基础。
NumPy的引用
import numpy as np
三、N维数组对象:ndarray
例:计算A²+B³,其中,A和B是一维数组
import numpy as np
def npSum():
a = np.array([0, 1, 2, 3, 4])
b = np.array([9, 8, 7, 6, 5])
c = a ** 2 + b ** 3
return c
print(npSum())
- 数组对象可以去掉元素间运算所需的循环,使一维向量更像单个数据。
- 设置专门的数组对象,经过优化,可以提升这类应用的运算速度。
- 科学计算中,一个维度所有数据的类型往往相同。
- 数组对象采用相同的数据类型,有助于节省运算和存储空间。
- ndarray数组可以由非同质对象构成。
- 非同质ndarray元素为对象类型
- 非同质ndarray对象无法有效发挥NumPy优势,尽量避免使用
ndarray是一个多维数组对象,由两部分组成:
- 实际的数据
- 描述这些数据的元数据(数据维度、数据类型等)
ndarray数组一般要求所有元素类型相同(同质),数组下标从0开始。
1、ndarray实例
np.array()生成一个ndarray数组
np.array()输出成 [ ] 形式,元素由空格分割。
轴(axis):保存数据的维度
秩(rank):轴的数量
2、ndarray对象的属性
属性 | 说明 |
---|---|
.ndim | 秩,即轴的数量或维度数量 |
.shape | ndarray对象的尺度,对于矩阵,n行m列 |
.size | ndarray对象元素的个数,相当于.shape中n*m的值 |
.dtype | ndarray对象的元素类型 |
.itemsize | ndarray对象中每个元素的大小,以字节为单位 |
In:a = np.array([[0,1,2,3,4],[9,8,7,6,5]])
In:a.ndim
Out[3]: 2
In:a.shape
Out[4]: (2, 5)