NumPy数据处理详解的笔记3
第1章NumPy基础
NumPy是用于处理多维数组的数值运算库,不仅可用于
机器学习,还可以用于图像处理,语言处理等任务。
1.4 切片
python编程语言对数组切片功能有支持, NumPy 的ndarray
的切片功能是类似的,还推广到了多维的情况。
1.4.1 何谓切片
所谓切片,是指将数组中特定范围内的元素提取时所使用的
功能,也可以用特定的数值赋值给特定的范围。
1.4.2 切片的使用方法
对于数组中某一个维度的指定方式是start :stop:step。
索引方式:从左向右为0到n-1,从右向左为-1到-n
省略情况:省略start时 :stop:step 默认的是start=0
省略stop时 start::step 默认的是stop=n-1
省略step时 start:stop 默认的是step=1
全省略时 : 取整个数组
step为负数时,逆序对一定间隔的元素进行提取。
1.4.3 向高维数据结构的扩展
只需要将各个维度上的切片组合起来即可。按坐标轴编号的升序
依次指定,在每个维度间,用逗号分隔。
1.5 关于坐标轴和维度
在np.sum,np.average,np.amax等函数中都可以指定axis参数。
1.5.1 ndarray的维度
数组的维度等于数组的形状的元组中的元素的个数。
1.5.2 关于坐标轴
axis 对应为 shape的索引。
1.6 ndarray 的 shape属性
shape元组中的元素值表示相对应的维度内数据的个数,一维数组
shape表示为(R,),一维数组转置得到的纵向量用(R,1)表示。
1.7元素数据类型的种类与指定方法
NumPy的内部使用 C 语言来实现对大量数据的处理。
通过正确地为NumPy指定数据类型,提高代码的执行效率。大部分类型
与 C语言的数据类型是一样的,值得注意的是复数类型。
原则上不推荐在生成了数据之后,再进行数据类型的转换操作。
1.8 副本与视图的区别
分清副本与视图,可以注重到代码的执行速度,减少无意中改变了
数组数据的错误发生。
1.8.1副本与视图
副本:使用了新的内存空间,数据与原数组的数据相同。
视图:指向了原数组的地址。
如果将原本是视图的对象错当成了副本对象,可能会导致致命性的错误,
而相反地,即使将副本对象错误地当作了视图对象使用,也不会出现无意
中破坏数据结构的错误,因而这种错误的情况,问题不大。问题主要体现
在会影响代码的执行性能上了。