python的numpy结构数组和内层布局

 时间:2024-10-14 03:16:05

1、结构数组的生成。首先加载numpy库,然后定义数组类型。dt=np.dtype([('Name','S24'),('Sex','S2'),('Age','i8'),('Children/Pets','i4',2)])表示定义每个字段的类型:Name是24位的字符串,Sex是2位的字符串,Age是8位整数,Children/Pets表示一对元组,类型是4位整数;s=np.array([('Zhang San','M',27,(1,1)),('Sun MeiLi','F',22,(0,2))],dtype=dt)则表示使用上面定义好的数组类型,增加2条记录;如图所示

python的numpy结构数组和内层布局

2、结构数组访问和选取记录。s['Name']表示查看数组s的Name字段下的数据;s[媪青怍牙'Children/Pets']表示查看数组s的Children/Pets字段下的数据(表示拥有几个孩子,几个宠物);s['Age'].mean()表示查看数组s的Age字段的数据的平均值;s[1]['Sex']表示查看数组s的第2行中Sex字段的取值;如图所示

python的numpy结构数组和内层布局

3、内存布局-生成多维数组。X=np.random.standard_norma盟敢势袂l((5,10000000))表示生成一个5*10000000的标准正态分布二维数组;Y=X**2-1是一个函数关系式;C=np.array((X,Y),order='C')表示使用类似C语言的内存布局;F=np.array((X,Y),order='F')表示使用类似Fortran的内存布局;X=0.和Y=0.表示清空内存;C[:2].round(2)表示查看C的前2个元素,并保留2位小数;F[:2].round(2)表示查看F的前2个元素,并保留2位小数;如图所示

python的numpy结构数组和内层布局
python的numpy结构数组和内层布局
python的numpy结构数组和内层布局

4、内存布局-测试求和的性能。类C和类F的求和性能差不多,都需要160毫秒左右,也就是说对所有元素求和时性能差异并不大;如图

python的numpy结构数组和内层布局

5、内存布局-类C的第一个元素按行、按列求和的性能。由于第一个元素是5*10000000的数组,按列求和(结果长度是10000000)速度略微慢于按行求和(结果长度是5),如图所示

python的numpy结构数组和内层布局

6、内存布局-类F的第一个元素按行、按列求和的性能。由于第一个元素是5*10000000的数组,按列求和(结果长度是10000000)速度略慢于按行求和(结果长度是5);和类C相比,不管是按行还是按列速度都明显慢了很多(大约3倍),如图所示

python的numpy结构数组和内层布局
  • ecshop 商城的安装及出现错误的解决
  • visual studio 2013 如何建立一个 webservice
  • jquery 如何获得跨页面的内容
  • 最好用的虚拟光驱软件Virtual CloneDrive
  • 父母犯错该如何向孩子道歉?
  • 热门搜索
    交通知识手抄报 关于爱国的手抄报图片 童话世界手抄报 弟子规手抄报内容 快乐读书手抄报内容 四年级数学手抄报图片 语文天地手抄报 关于月亮的手抄报图片 和读书有关的手抄报 军训的手抄报