NumPy数据处理详解的笔记4
第2章NumPy与数组操作
2.1 数组形状变换函数
np.reshape与 np.resize等的区别如下
函数名 变形前后数组元素数量不一致的行为 有无参数order 元素变更的影响
np.reshape 出现运行时错误 有 有
ndarray.reshape 出现运行时错误 有 有
np.resize 从头开始用原有元素填充 无 无
ndarray.resize refcheck=true时报错, 无 有
recheck=false时用0填充缺失元素
2.2 添加元素到数组末尾的函数
使用np.append 原先的shape会遭到破坏,而且内部实现会对元素进行复制,
而 python 的列表是用于存储长度可变元素的向量类型,程序会事先申请比
实际所需稍大的内存空间,所以并不会每次都对元素进行复制。
2.3 数组的真假值判断函数
当元素中含有错误的值时,或者在确认执行结果时,会使用np.all和np.any函数。
2.4 指定条件获取元素索引的函数
使用np.where函数,获得的返回值是索引,不是元素的数值。
np.where可以像 Python语言中的三元运算符那样使用。
在第一个参数中指定提取元素的条件,在第二个参数中指定条件为真时的数值,
第三个参数中指定条件为假时的值,在第三个参数中指定数组或者元组这样
可以迭代的值,在循环中就会使用通过迭代得到的数值进行替换。
2.5 最大值,最小值的筛选函数
np.amax对数组中最大值进行返回。指定 axis,就会对最大值的数组进行返回。
只要元素中有一个元素包含NaN属性,程序就会将NaN作为最大值返回。
如果不想将NaN作为最大值返回,就需要使用 nanmax函数。
所谓NaN是指无法使用某一个类型进行显示的数值,或者不存在有效的数值时,
所使用的特殊值,是Not a Number的简称。
对于NaN问题,是与编程语言无关的,在数值计算中像幽灵一般又时常出现的问题。
必须高度地重视,特殊地考虑与处理,防止出现计算问题的特殊易错的编程注意点。
开车时,路上常有“此处是车祸易发路段,请谨慎驾驶”的警告牌。
编程时,NaN问题,数值上溢下溢问题,除0问题,数组索引越界问题等都是编程易错点,
要立好警告牌。
2.6 返回数组中最大元素索引的函数
np.ndarray.argmax对指定数组中的第一个最大值元素的索引进行返回。
2.7 切换数组坐标轴顺序的函数
使用np.ndarray.transpose,np.transpose np.ndarray.T中任意一个实现。
如果是三维数组,未指定坐标轴顺序时,默认为(2,1,0)
2.8 排序函数
可以指定坐标轴,排序算法,和排序字段,未找到降序排序的指定方法。
排序算法支持quicksort,mergesort,heapsort。