一般参数有axis时,0是列; 1是行
假设 :
1 | import scipy.io as scio |
求平均值 mean
1 | array1.mean(axis=0) == numpy.mean(array1, axis=0) |
axis=0 对 列求平均值。
求方差 std
1 | array1.std(axis=0) == numpy.std(array1, axis=0) |
axis的意义同1,求方差。
numpy scipy pandas 区别
NumPy 是基础的 数学 计算库,包括 基本的四则运行,方程式 计算,微积分 什么的,还有很多其他数学方面的计算,我也不是很清楚
SciPy 是在NumPy基础上,封装了一层,没有那么纯数学,提供方法直接计算结果
Pandas 是上层做数据分析用的,主要是做表格数据呈现
如果不是纯数学专业还是从 Pandas 入手比较好。
读.mat文件 loadmat
1 | scio.loadmat(train_data_file) |
求几次方 **
1 | diff ** 2 |
数组求和 sum
1 | diff.sum(axis=1) |
排序下标 argsort
1 | diff.argsort(axis=1) |
dict get
1 | class_count.get(label, 0) |
dict排序 sorted
1 | sorted_class_count = sorted(class_count.iteritems(), key=operator.itemgetter(1), reverse=True) |
统计次数 bincount
1 | 1, 2, 3, 2]) a = np.array([ |
np.random.uniform(start, end[, size])
生成一个数值均匀分布在start,end间的长度大小是size的数组(ndarray类型)。 注意是>= start && < end ,前闭后开。 size默认是1
np的flatten() vs ravel()
两者都是把多维矩阵铺平,以行为主。区别是flatten返回的是原矩阵的拷贝;ravel是返回的是原矩阵的一种变换视图,如果对返回值修改原矩阵也会跟着变化。
1 | a |
np.mgrid 生成网格
np.mgrid[start: end: size/seperate]原本是生成一个[start, end)的表格,分割大小是seperate;第三个参数后面有j时表示生成一个[start, end]的表格,表格大小是size:
1 | -10:10:5j] # 有‘j’。生成大小是5的分布在[-10, 10]的表格 np.mgrid[ |
np.amin/amax == np.min/max
矩阵拼接np.vstack(tuple) np.hstack(tuple) np.concatenate(tuple) np.stack()
tuple是一个arrays,就是由多个矩阵组成。
hstack(tuple) 是把多个矩阵以行拼接,等同于np.concatenate(tuple, axis=1)
vstack(tuple) 是把多个矩阵以列拼接,等同于np.concatenate(tuple, axis=0)
1 | 1,2,3], [2,3,4]]) a = np.array([[ |
np.transpose(元组) 和 T
transpose适用于多维数组,它依赖与参数 元组 ,元组依赖与 shape。
T用于一/二维数组。
:, 代表一个维度的切片
eg:
1 | img = io.imread(img_path) |