'''尚学堂学习笔记,用于复习'''
NumPy:是科学计算基础库,提供大量科学计算相关功能,比如数据统计,随机数生成等。其提供最核心类型为多维数组类型(ndarray),支持大量的维度数组与矩阵运算,NumPy支持向量处理ndarray对象,提高程序运算速度。
尝试代码与运行结果:
array创建ndarray对象
arange创建ndarray对象
使用random.random创建数组,元素范围为[0.0, 1.0)
使用random.randint创建数组,可以通过dtype改类型,默认int64
生成标准正态分布
生成指定期望和方差的正态分布
以上生成的均为ndarray对象,ndarray常见的几个属性
ndarray.ndimin:秩,维度的数量
ndarray.shape:如n行m列
ndarray.size:元素总个数,如n行m列的元素个数为n*m
ndarray.dtype:ndarray对象元素类型
ndarray.itemsize:单个元素的大小,单位为字节
创建指定元素大小的数组方法
使用linspace创建等差数列
使用logspace创建等比数列
一维数组的切片操作,类比字符串的切片操作即可
二维数组的切片操作,类比一维即可
负
负索引在倒序的应用
数组的复制
reshape方法改变数组形状(会生成新的对象)
数组的拼接
对于二维数组
hstack(a, b)将a和b进行水平拼接,形象上的水平
vstack(a, b)将a和b进行竖直拼接
对于三维数组
concatenate((a, b), axis=n),将a和b进行拼接,方式取决于axis,axis=0竖直拼接,axis=1水平拼接,axis=2按第三维拼接
用数学公式表示为,设a是形状为(x1, y1, z1)的数组,b是形状(x2, y2, z2)的数组,如果axis=0,
则拼接后设为c,c为形状为(x1+x2,y1,z1)的数组,如果axis=1,为(x1, y1 + y2, z2)的数组,当且仅当所有不被拼接的那维大小相等程序能正常进行,即当axis=1时,y1+y2能进行的充分必要条件为x1 = x2, z1 = z2,对y1和y2的大小没有限制
数组的分割
二维数组的分割多了一个axis参数,类比一维的分割方式即可
数组的转置
np.transpose(a),若a之前为(i, j, k),转置后为(k, j, i)
也可指定参数,如np.transpose(a, (2, 0, 1)),若a之前为(i, j, k),即分别将第二维,第零维,第一维放在指定位置,即(k, i, j)