Numpy

1.1 数据的维度

1.1.1 列表与数组

相同:都表示一组数据的有序结构

相异:列表的数据类型可以不同,数组的数据类型相同

1.1.2 多维数据与高维数据
  • 多维数据由一维或二维数据在新维度上扩展形成
  • 高维数据仅使用最基本的二元关系(如键值对)展示数据间的复杂结构,如:




python列表某个维度大小 python列表维度判断_数据


1.1.3 数据维度的python表示
  • 一维数据:列表和集合
  • 二维数据:列表
  • 多维数据:列表
  • 高维数据:字典或数据表示格式

1.2 Numpy的数组对象ndarray

1.2.1 ndarray基本语法

数组对象可以去掉元素间运算所需的循环,使一维向量更像单个数据


python列表某个维度大小 python列表维度判断_数组_02


python列表某个维度大小 python列表维度判断_python_03


  • **np.array()**:生成一个ndarray数组


python列表某个维度大小 python列表维度判断_python列表某个维度大小_04


  • .ndim
  • .shape
  • .size
  • .dtype
  • .itemsize
1.2.2 ndarray的创建和变换
1.2.2.1 ndarray的创建


python列表某个维度大小 python列表维度判断_python列表某个维度大小_05


  • x=np.array(list/tuple)
  • dtype 参数可以在创建时传入想指定的数据类型
  • 利用函数创建ndarray数组


python列表某个维度大小 python列表维度判断_python列表某个维度大小_06


python列表某个维度大小 python列表维度判断_Powered by 金山文档_07


使用其他函数创建ndarray数组,如:

  • np.linspace(起始元素,终止元素,元素个数)
  • endpoint参数 默认为True,当传入False时,不将终止元素算入元素个数
  • np.concatnate((a,b))
1.2.2.2 ndarray的维度变换
  • .reshape(shape)
  • .resize
  • .swapaxes(ax1,ax2)
  • .flatten()
1.2.2.3 ndarray的类型变换
  • new_a=a.astype(new_type)
1.2.2.4 ndarray转换为列表
  • .tolist()
1.2.3 ndarray的索引和切片

数组的索引和切片


python列表某个维度大小 python列表维度判断_python_08


一维数组的索引和切片:与python的列表类似


python列表某个维度大小 python列表维度判断_python列表某个维度大小_09


多维数组的索引

  • a[x,y,z]

多维数组的切片

  • a[: ,: ,: ]
1.2.4 ndarray的运算
1.2.4.1数组与标量的运算

数组与标量的加减乘除作用于数组的每一个元素

1.2.4.2 元素级运算的函数
  • np.abs(x)/np.fabs(x)
  • np.sqrt(x)
  • **np.aqare(x) ** 计算各元素的平方
  • np.log(x)/np.log10(x)/np.log2(x)
  • **np.ceil(x)/np.floor(x)** 计算各元素的ceiling值或floor值


python列表某个维度大小 python列表维度判断_python列表某个维度大小_10


几乎numpy的一元函数作用后都是生成了新数组 而没有改变原来的数组

1.2.4.3 二元函数


python列表某个维度大小 python列表维度判断_python列表某个维度大小_11


1.3 文件的存取

1.3.1 CSV文件存取


python列表某个维度大小 python列表维度判断_Powered by 金山文档_12


  • %d表示以整数形式写入文件中
  • %.2f表示以两位小数形式写入文件,%.1f表示以一位小数形式写入文件


python列表某个维度大小 python列表维度判断_Powered by 金山文档_13


python列表某个维度大小 python列表维度判断_数组_14


csv文件的局限性:只能存储一维和二维数组

1.3.2 多维数据的存取


python列表某个维度大小 python列表维度判断_python_15


1.3.3 numpy的便捷文件存取


python列表某个维度大小 python列表维度判断_python列表某个维度大小_16


1.4 numpy的随机数函数

numpy的random子库

  • np.random.*
  • np.random.rand()
  • np.random.randn()
  • np.random.randint()
1.4.1 随机函数(1)


python列表某个维度大小 python列表维度判断_数据_17


实例化


python列表某个维度大小 python列表维度判断_python列表某个维度大小_18


  • 重复使用同样的随机数种子可以在测试的时候得到相同的随机数组
1.4.2 随机函数(2)


python列表某个维度大小 python列表维度判断_python_19


实例化


python列表某个维度大小 python列表维度判断_Powered by 金山文档_20


1.4.3 随机函数(3)


python列表某个维度大小 python列表维度判断_数据_21


实例化

1.5 numpy的统计函数

  • np.*
  • np.std()
  • np.var()
  • np.average()
1.5.1 统计函数(1)


python列表某个维度大小 python列表维度判断_Powered by 金山文档_22


实例化


python列表某个维度大小 python列表维度判断_Powered by 金山文档_23


默认情况下 axis=None 表示对所有元素进行累加计算

  • axis=0 列数不变,对每一列进行计算得一个新值
  • axis=1 行数不变,对每一行进行计算得一个新值
1.5.2 统计函数(2)


python列表某个维度大小 python列表维度判断_python列表某个维度大小_24


实例化


python列表某个维度大小 python列表维度判断_python_25


1.6 numpy的梯度函数

  • np.gradient(f)
  • 计算数组f中元素的梯度,当f为多维时,返回每个维度梯度

实例化


python列表某个维度大小 python列表维度判断_数组_26