python学习numpy基础和应用-3

创建自定义类型的数组

面对好多复杂的实际情况,仅有的几种数组类型可能没办法满足我们的需要,因此允许我们自定义类型。

创建自定义类型,使用的方法是np.dtype()。注意区分,这里展示的不是数组对象的属性

data.dtype data是数组对象,其属性返回值是元素类型,而np.dtype是一个方法。

my_type就是自定义的dtype对象,其参数就是一个字典,字典有两个键“names”和“formats”,键必须是两个,通过两个键及其对应的值来定义类型的基本结构。这两个键分别为两个列表。“names”的值是【‘book’,‘version’】,规定了my_type的两个字段名称;

“formats”的值分别是['S40',np.int],依次规定相应的类型,即book字段的类型S40,代表此字段为长度为40字节的字符串类型,version字段的类型是整数类型。

然后通过我们刚才创建的类型来定义一个数组,

通过自定义的元素类型得到的mybook后,我们就可以通过不同的方式来得到相应字段的值。

在输入输出样例中,有“<”和“|”符号,他们表示的是字段值的字节顺序。

“|”表示忽略字节顺序,“<”表示地位字节在前,“>”表示高位字节在前。

通过使用自定义的类型得到数组对象的时候,mtbook颇似一个小型的数据库表,字段名分别是book和version,并且是一个字符串类型,另一个是整数形。他们有很大的相似之处,试一试其中的记录是否能改。

但是当我们试图添加记录时,就会失败,这样添加内容的企图是不能得逞的,因为一个数据一旦确定,其轴的数量就不能发生变化了,所以跟数据库表还是有区别的。

使用from系列函数创建数组:

当我们dir(np)的时候,会发现有好多以from开始的方法名称,使用这些方法来创建数组,他们分别是frombuffer,fromfile,fromfunction,fromiter,fromregex,fromstring。

np.fromfunction()函数:

fromfunction()中的参数(5,)表示数组的形状,即0轴有5个元素,这5个的索引一次是0,1,2,3,4,

当着5个整数被逐个传给函数foo并经过计算返回结果,最终得到数组array(【1,2,3,4,5】)。

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值