(
课件网) Python科学计算与数据分析开发基础 软件生态系统scipy 11.1 Python SciPy特征基于Python的软件生态系统(ecosystem)开源主要为数学、科学和工程服务PythonNumPy特征高性能科学计算和数据分析的基础包强大的ndarray对象精巧的函数和ufunc函数适合线性代数和随机数处理等科学计算>>>importnumpyasnp>>>xArray=np.ones((3, 4))SourcePythonSciPylibrary特征Python中科学计算程序的核心包有效计算numpy矩阵,让NumPy和SciPylibrary协同工作致力于科学计算中常见问题的各个工具箱,其不同子模块有不同的应用,如插值、积分、优化和图像处理等>>>importnumpyasnp>>>fromscipyimportlinalg>>>arr=np.array([[1, 2], [3, 4]])>>>linalg.det(arr)-2.0SourcePythonMatplotlib特征基于NumPy二维绘图库,简单快速地生成曲线图、直方图和散点图等形式的图常用的pyplot是一个简单提供类似MATLAB接口的模块Pythonpandas特征基于SciPylibrary和NumPy高效的Series和DataFrame数据结构强大的可扩展数据操作与分析的Python库高效处理大数据集的切片等功能提供优化库功能读写多种文件格式,如CSV、HDF5…>>>df[2 : 5]>>>df.head(4)>>>df.tail(3)SourcePythonPython常用的数据结构数值型字符串列表元组字典集合Python其他数据结构?SciPy中的数据结构Python原有数据结构的变化ndarray(N维数组)Series(变长字典)DataFrame(数据框)Pythonnumpy 11.2 Python Python中的数组用list和tuple等数据结构表示数组一维数组list = [1,2,3,4]二维数组list = [[1,2,3],[4,5,6],[7,8,9]]array模块通过array函数创建数组,array.array("B", range(5))提供append、insert和read等方法Pythonndarrayndarray是什么 N维数组NumPy中基本的数据结构所有元素是同一种类型别名为array利于节省内存和提升计算性能有丰富的函数00000000000000000000000000123456789101112131415161718192021222324Python11.2.1ndarray的基本特性Pythonndarray基本概念ndarray数组属性N维数组维度(dimensions)称为轴(axes),轴的个数称为秩(rank)沿着第0轴和第1轴操作axis = 0(按列)axis = 1(按行)000000000000123456789101112第0轴第1轴Pythonndarray基本概念ndarray数组属性N维数组基本属性ndarray.ndim(秩)ndarray.shape(维度)ndarray.size(元素总个数)ndarray.dtype(元素类型)ndarray.itemsize(元素字节大小)000000000000123456789101112第0轴第1轴Python11.2.2创建ndarrayPythonndarray的创建>>>importnumpyasnp>>>aArray=np.array([1,2,3])>>>aArrayarray([1, 2, 3])>>> bArray =np.array([(1,2,3),(4,5,6)])>>> bArrayarray([[1, 2, 3],[4, 5, 6]])>>>bArray.ndim,bArray.shape,bArray.dtype(2, (2, 3),dtype('int32'))Sourcearray()函数Pythonndarray的创建ndarray创建函数arangearraycopyemptyempty_likeeyefromfilefromfunctionidentitylinspacelogspacemgridogridonesones_likerzeroszeros_likePythonndarray的创建>>>np.ones([2, 3])array([[ 1., 1., 1.],[ 1., 1., 1.]])>>>np.zeros((2, 2))array([[ 0., 0.],[0., 0.]])>>> np.arange(1, 5, 0.5)array([ 1. , 1.5, 2. , 2.5, 3. , 3.5, 4. , 4.5])>>>np.linspace(1, 2, 10,endpoint =False)array([ 1. , 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 1.7, 1.8, 1.9])Sourceones()zeros()arange()linspace()Pythonndarray的创建>>>np.random.random((2, 2))array([[ 0.79777004, 0.1468679 ],[ 0.95838379, 0.86106278]])>>> np.fromfunction(lambdai, j:(i+1)*(j+1), (9,9))array([[ 1., 2., 3., 4., 5., 6., 7., 8., 9.],[ 2., 4., 6., 8., 10., 12., ... ...