手抄报 安全手抄报 手抄报内容 手抄报图片 英语手抄报 清明节手抄报 节约用水手抄报

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结构数组和内层布局
© 手抄报圈