理解ndarray是一种高效多维数组, 它可以对所有数据进行快速的矩阵计算而无需编写循环程序. 也就是可以把一个ndarray数组看成是一个单独的元素进行处理
理解使用import numpy as np
的意义
注意ndarray数组是一个多维同类数据容器, 即每一个元素都是相同的类型
会使用ndarray数组的shape
和dtype
属性
掌握常见的数组生成函数比如np.array()
, np.arange()
, np.ones()
等
了解通常的dtype
都是按照类型名+数字来表示的, 但是实际上我们关心常用的几个对象即可
了解NumPy的常用数据类型和类型代码
会使用astype()
方法显式地转换数组的数据类型, 该方法还可以将字符串转化为数字. 该方法转化浮点数为整数时, 小数点后的部分将被消除.
了解向astype()
方法传入另一个数组的属性或者类型代码的方式
了解相同尺寸数组之间的运算以逐元素操作的方式发生. 不同尺寸的数组间的操作要用广播特性
掌握一维数组索引元素的方法. 并且会使用a[0][2]
或者a[0,2]
这样的方式来索引二维数组元素乃至索引高维数组元组
了解数组的切片只是原数组的一个视图这个概念. 即对切片的操作会影响原数组. 因为NumPy数组通常很大, 所以默认的切片操作并不是复制的形式.
会使用copy()
方法显式地获得数组切片的复制
会使用省略后续索引值的方式获得降低一个维度的数组的方法, 但是注意这种对子集的选择返回的都是视图
掌握高维数组的切片方法.同时注意这个切片也是数组的视图
掌握使用布尔值数组索引的方法, 注意使用布尔值索引选择数据时总是生成数据的拷贝
注意python的关键字and
和or
对布尔值数组没有用, 但是操作符&
和|
时可以用的
会使用!=
和在条件表达式前用~
取反
会使用神奇索引来通过指明顺序复制数组的方式来生成新的数组. 比如arr[[1,0,3,2]]
就是将一维元素按照1,0,3,2的顺序进行排列生成复制数组. 这个顺序的参数也可以是负数
掌握数组的reshape()
方法
会使用数组的T
属性得到数组(矩阵)的转置
会使用np.dot()
函数得到两个矩阵的内积
会使用transpose()
方法置换轴(传入新的轴编号元组即可arr.transpose((1,0,2))
)
会使用swapaxes()
方法交换两个轴的位置
了解通用函数是一种在ndarray数据中进行逐元素操作的函数
掌握常用的一元通用函数如np.abs()
, np.sqrt()
等
掌握常用的二元通用函数如np.add()
,np.multiply()
等
理解向量化的概念. 利用数组表达式来替代显式循环
掌握np.meshgrid()
函数的用法. meshgrid函数就是用两个坐标轴上的点在平面上画网格. x坐标和y坐标合起来就可以做一些事情比如sqrt(x**2 + y**2)
. 举例比如p是一个m个元素的一维数组, q是一个n个元素的一维数组. 那么x , y = np.meshgrid(p , q)
. 那么得到的x是一个n行m列数组 (也就是n行p数组). 得到的y是一个m列n行数组(也就是m列q数组). 英文参考, 中文参考
会使用np.where()
函数来代表向量化的三元表达式result = np.where(cond,xarr,yarr)
. where常用于根据一个数组生成一个新数组
掌握基础的数组统计方法比如sum()
,mean()
,min()
,cumsum()
等
掌握向mean()
,sum()
等函数中传入参数axis从而按照特定的轴来统计数据.
掌握使用sum()
函数来计算布尔值数组中的True个数
会使用any()
和all()
函数来检查数组中的True个数
了解sort()
方法返回的是已经排序好的数组拷贝. 并且sort方法可以传入axis值从而按轴排序
掌握常用的数组集合操作如unique()
等
掌握np.save()
,np.load()
,np.savez()
,np.savez_compressed()
函数的使用
注意数组在默认情况下是以.npy
的后缀的文件进行存取的, .npz
则是已经压缩好的文件的后缀
掌握三种矩阵点乘的方式x.dot(y)
,np.dot(x,y)
,x @ y
. 注意第一种方式没有改变数组x
掌握常用的numpy.linalg
函数, 比如inv()
,det()
等. 一般可以用from numpy.linalg import inv, det
这样的方式引入
了解Python内建的random模块一次只能生成一个值, 但是numpy.random
可以以很快的速度一次生成很多值
掌握随机数种子的概念, np.random.seed
可以更改numpy的随机数种子
掌握常用的numpy.random
中的函数比如seed()
,rand()
,randn()
,normal()
等