numpy
1、array A第i行第j列元素:A[i][j]
2、np.zeros((n, m));np.randm.randn(n, m);
3、array A的维度:A.shape(无括号)
4、a.T 点乘 b : np.dot(a, b) 或 np.sum(a * b)
5、np.random.rand():0到1之间;np.random.randn():均值为0,方差为1
6、axis:
axis = 0:竖直方向相加;axis = 1:水平方向相加
7.np.max 与np.maximum区别:
max取一个数组里的最值,maximum取两者之间较大者。
8.mat和array的区别:
mat只能是二维的,而array可以是多维的。
mat * 是点积运算,b**2是b和b点积,数乘用np.multiply。而array * 是数乘,np.dot才是点积。
9、cv2的imread读取图像:
返回numpy的ndarray类型数组。
10、resize和reshape:
resize直接改变原数组,无返回值;
reshape不改变原数组,返回新数组。
11、np.expand_dims(x, axis):
axis是指插入该轴后,这个轴对应的1位于x.shape的第几个位置。
例如:
扩充维度,并在该维度复制:用 repeat 函数
12、对数组取整
四舍五入:np.round(a),返回的是浮点数。
直接取整:a.astype(int).
四舍五入并取整:np.round(a).astype(int)
13、数组索引也可以并行化
例如,img 是一个三维数组,值在0~255之间,直方图均衡化时,需要对img按照像素值进行转换,
转换数组transfer_map是 size 为256的一维数组,将一个像素值映射到另一个像素值。
可以看到,上面的向量化实现方式要快100倍。