Numpy 最基本的库,是用于处理含有同种元素的多维数组运算的第三方库
—科学计算包,python数据分析及科学计算的基础库,几乎支撑所有其他库
—支持N维数组运算、处理大型矩阵、成熟的广播函数库、矢量运算、线性代数、傅里叶变换、随机数生成等功能
—可与C++/Fortran语言无缝结合。树莓派Python v3默认安装已经包含了numpy。
本笔记包含以下内容
一、导入模块 二、生成数组 三、运算函数 四、数组与数值的运算
五、数组与数组的运算 六、转置 七、点积/内积 八、数组元素访问
九、数组支持函数运算 十、改变数组大小 十一、切片操作 十二、布尔运算
十三、取整运算 十四、广播 十五、分段函数 十六、计算唯一值以及出现次数
十七、矩阵运算 十八、矩阵不同维度上的计算
一、导入模块
>>> import numpy as np
二、生成数组
>>> np.array([1, 2, 3, 4, 5]) # 把列表转换为数组 array([1, 2, 3, 4, 5]) >>> np.array((1, 2, 3, 4, 5)) # 把元组转换成数组 array([1, 2, 3, 4, 5]) >>> np.array(range(5)) # 把range对象转换成数组 array([0, 1, 2, 3, 4]) >>> np.array([[1, 2, 3], [4, 5, 6]]) # 二维数组 array([[1, 2, 3], [4, 5, 6]]) >>> np.arange(8) # 类似于内置函数range() array([0, 1, 2, 3, 4, 5, 6, 7]) >>> np.arange(1, 10, 2) array([1, 3, 5, 7, 9]) >>> np.linspace(0, 10, 11) # 等差数组,包含11个数 array([ 0., 1., 2., 3., 4., 5., 6., 7., 8., 9., 10.]) >>> np.linspace(0, 10, 11, endpoint=False) # 不包含终点 array([ 0. , 0.90909091, 1.81818182, 2.72727273, 3.63636364, 4.54545455, 5.45454545, 6.36363636, 7.27272727, 8.18181818, 9.09090909]) >>> np.logspace(0, 100, 10) # 对数数组 array([ 1.00000000e+000, 1.29154967e+011, 1.66810054e+022, 2.15443469e+033, 2.78255940e+044, 3.59381366e+055, 4.64158883e+066, 5.99484250e+077, 7.74263683e+088, 1.00000000e+100]) >>> np.logspace(1,6,5, base=2) # 对数数组,相当于2 ** np.linspace(1,6,5) array([ 2. , 4.75682846, 11.3137085 , 26.90868529, 64. ]) >>> np.zeros(3) # 全0一维数组 array([ 0., 0., 0.]) >>> np.ones(3) # 全1一维数组 array([ 1., 1., 1.]) >>> np.zeros((3,3)) # 全0二维数组,3行3列 [[ 0. 0. 0.] [ 0. 0. 0.] [ 0. 0. 0.]] >>> np.zeros((3,1)) # 全0二维数组,3行1列 array([[ 0.], [ 0.], [ 0.]]) >>> np.zeros((1,3)) # 全0二维数组,1行3列 array([[ 0., 0., 0.]]) >>> np.ones((1,3)) # 全1二维数组 array([[ 1., 1., 1.]]) >>> np.ones((3,3)) # 全1二维数组 array([[ 1., 1., 1.], [ 1., 1., 1.], [ 1., 1., 1.]]) >>> np.identity(3) # 单位矩阵 array([[ 1., 0., 0.], [ 0., 1., 0.], [ 0., 0., 1.]]) >>> np.identity(2) array([[ 1., 0.], [ 0., 1.]]) >>> np.empty((3,3)) # 空数组,只申请空间而不初始化,元素值是不确定的 array([[ 0., 0., 0.], [ 0., 0., 0.], [ 0., 0., 0.]])