python numpy 自定义数据类型

在某些场景下,可能会用到numpy的自定义数据类型,比如需要将电子表格或者数据库的一行数据作为一个数据。

举例说明,我们创建一个存储商店库存信息的数据类型。其中,我们用一个长度为40个字符的字符串来记录商品名称,用一个32位的整数来记录商品的库存数量,最后用一个32位的单精度浮点数来记录商品价格。

以下将会用到numpy包,所以先import

>>> import numpy as np
创建数据类型
>>> t = np.dtype([('name',np.str_,40),('numitems',np.int32),('price',np.float32)])
>>> t
dtype([('name', '<U40'), ('numitems', '<i4'), ('price', '<f4')])

上面显示出的类型如 “< U40” 表示的是字符编码,下面列出字符编码的对应表。

解析:< U40

  • < :表示字符序,即位长为40的字储存的顺序,包括大端序(big-endian)和小端序(little-endian)。大端序是将最高位字节存储在最低的内存地址处,用>表示;与之相反,小端序是将最低位字节存储在最低的内存地址处,用<表示。
  • U: 字符编码
  • 40: 用40位存储字。
查看类型
>>> t['name']
dtype('<U40')
使用自定义的类型创建数组
>>> items = np.array([('Meaning of life DVD', 42, 3.14),('Butter', 13, 2.72)], dtype=t)
>>> items
array([('Meaning of life DVD', 42,  3.1400001 ),
       ('Butter', 13,  2.72000003)],
      dtype=[('name', '<U40'), ('numitems', '<i4'), ('price', '<f4')])
>>> items[1]
('Butter', 13,  2.72000003)

在用array函数创建数组时,如果没有在参数中指定数据类型,将默认为浮点数类型,所以这里必须制定dtype参数。

  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值