这是我学些numpy时做的一些笔记,分享给大家,在CSDN上搜索相关词也可获得numpy简介 NumPy是一个Python包。它代表NumericPython。它是一个由多维数组对象和用于处理数组的例程集合组成的库。numpy操作数组的算数和逻辑运算。傅立叶变换和用于图形操作的例程。与线性代数有关的操作。NumPy拥有线性代数和随机数生成的内置函数。numPy数据类型 NumPy支持比Python更多种类的数值类型。下表显示了NumPy中定义的不同标量数据类型。 序号 数据类型及描述 1。hrbool存储为一个字节的布尔值(真或假) 2。hrint默认整数,相当于C的long,通常为int32或int64 3。hrintc相当于C的int,通常为int32或int64 4。hrintp用于索引的整数,相当于C的sizet,通常为int32或int64 5。hrint8字节(128127) 6。hrint1616位整数(3276832767) 7。hrint3232位整数(21474836482147483647) 8。hrint6464位整数(92233720368547758089223372036854775807) 9。hruint88位无符号整数(0255)示例1标注矩阵格式首先创建结构化数据类型。importnumpyasnpdtnp。dtype(〔(age,np。int8)〕)printdt 〔(age,i1)〕示例2矩阵格式传递文件名称可用于访问age列的内容importnumpyasnpdtnp。dtype(〔(age,np。int8)〕)anp。array(〔(10,),(20,),(30,)〕,dtypedt)printa〔age〕 〔102030〕示例3矩阵中对应格式的表达importnumpyasnpstudentnp。dtype(〔(name,S20),(age,i1),(marks,f4)〕)anp。array(〔(abc,21,50),(xyz,18,75)〕,dtypestudent)printa 〔(abc,21,50。0),(xyz,18,75。0)〕 每个内建类型都有一个唯一定义它的字符代码:b:布尔值i:符号整数u:无符号整数f:浮点c:复数浮点m:时间间隔M:日期时间O:Python对象S,a:字节串U:UnicodeV:原始数据(void)numpy数组属性示例1调整矩阵行列importnumpyasnpanp。array(〔〔1,2,3〕,〔4,5,6〕〕)ba。reshape(3,2)printb 〔〔1,2〕〔3,4〕〔5,6〕〕示例2调整矩阵行列一维数组importnumpyasnpanp。arange(24)a。ndim现在调整其大小ba。reshape(2,4,3)printbb现在拥有三个维度 〔〔〔0,1,2〕〔3,4,5〕〔6,7,8〕〔9,10,11〕〕〔〔12,13,14〕〔15,16,17〕〔18,19,20〕〔21,22,23〕〕〕numpy来自数据的数组示例1矩阵表达将列表转换为ndarrayimportnumpyasnpx〔1,2,3〕anp。asarray(x)printa 〔123〕示例2元组转化为矩阵来自元组的ndarrayimportnumpyasnpx(1,2,3)anp。asarray(x)printa 〔123〕示例3元组矩阵转化为矩阵来自元组列表的ndarrayimportnumpyasnpx〔(1,2,3),(4,5)〕anp。asarray(x)printa 〔(1,2,3)(4,5)〕numpy数组上的迭代示例1矩阵展开importnumpyasnpanp。arange(0,60,5)aa。reshape(3,4)print原始数组是:printaprintprint修改后的数组是:forxinnp。nditer(a):printx, 原始数组是:〔〔051015〕〔20253035〕〔40455055〕〕 修改后的数组是:0510152025303540455055示例2矩阵的转置importnumpyasnpanp。arange(0,60,5)aa。reshape(3,4)print原始数组是:printaprintprint原始数组的转置是:ba。Tprintbprintprint修改后的数组是:forxinnp。nditer(b):printx, 原始数组是:〔〔051015〕〔20253035〕〔40455055〕〕 原始数组的转置是:〔〔02040〕〔52545〕〔103050〕〔153555〕〕 修改后的数组是:0510152025303540455055不同风格的顺序 C风格是横着顺序 F风格是竖着的顺序修改数组的值示例1矩阵相乘importnumpyasnpanp。arange(0,60,5)aa。reshape(3,4)print原始数组是:printaprintforxinnp。nditer(a,opflags〔readwrite〕):x〔。。。〕2xprint修改后的数组是:printa 原始数组是:〔〔051015〕〔20253035〕〔40455055〕〕 修改后的数组是:〔〔0102030〕〔40506070〕〔8090100110〕〕广播迭代示例1矩阵对应排列importnumpyasnpanp。arange(0,60,5)aa。reshape(3,4)print第一个数组:printaprintprint第二个数组:bnp。array(〔1,2,3,4〕,dtypeint)printbprintprint修改后的数组是:forx,yinnp。nditer(〔a,b〕):printd:d(x,y), 第一个数组:〔〔051015〕〔20253035〕〔40455055〕〕 第二个数组:〔1234〕 修改后的数组是:0:15:210:315:420:125:230:335:440:145:250:355:4numpy数组操作修改形状示例1flat迭代器importnumpyasnpanp。arange(8)。reshape(2,4)print原始数组:printaprintprint调用flat函数之后:返回展开数组中的下标的对应元素printa。flat〔5〕 原始数组:〔〔0123〕〔4567〕〕 调用flat函数之后:5示例2横竖格式表达C,Fimportnumpyasnpanp。arange(8)。reshape(2,4)print原数组:printaprintdefaultiscolumnmajorprint展开的数组:printa。flatten()printprint以F风格顺序展开的数组:printa。flatten(orderF) 原数组:〔〔0123〕〔4567〕〕 展开的数组:默认是A〔01234567〕 以F风格顺序展开的数组:〔04152637〕翻转操作示例1transpose转置矩阵importnumpyasnpanp。arange(12)。reshape(3,4)print原数组:printaprintprint转置数组:printnp。transpose(a)print转置数组:printa。T 原数组:〔〔0123〕〔4567〕〔891011〕〕 转置数组:〔〔048〕〔159〕〔2610〕〔3711〕〕