2020-10-24

结构数组的构建

结构数组,首先需要定义结构,然后利用`np.array()`来创建数组,其参数`dtype`为定义的结构。

1、利用字典来定义结构

personType = np.dtype({
'names':['name','height','weight'],
'formats':['U30','f8','f8']})

a = np.array([('Jerry',189,79),('Tom',206,100),('James',206,110)],dtype=personType)
print(a,type(a))

#[('Jerry', 189.,  79.) ('Tom', 206., 100.) ('James', 206., 110.)] 
#<class 'numpy.ndarray'>


2、利用包含多个元组的列表来定义结构

personType = np.dtype([('name', 'U30'), ('height', 'f8'), ('weight', 'f8')])
a = np.array([('Jerry',189,79),('Tom',206,100),('James',206,110)],dtype=personType)
print(a,type(a))

#[('Jerry', 189.,  79.) ('Tom', 206., 100.) ('James', 206., 110.)] 
#<class 'numpy.ndarray'>

结构数组的取值方式和一般数组差不多,可以通过下标取得元素:

print(a[0])
#('Jerry', 189., 79.)

print(a[-2:])
#[('Tom', 206., 100.) ('James', 206., 110.)]

我们可以使用字段名作为下标获取对应的值

print(a['name'])
#['Jerry' 'Tom' 'James']

print(a['height'])
#[189. 206. 206.]

数组的属性

`numpy.ndarray.ndim`用于返回数组的维数(轴的个数)也称为秩,一维数组的秩为 1,二维数组的秩为 2,以此类推。

 `numpy.ndarray.shape`表示数组的维度,返回一个元组,这个元组的长度就是维度的数目,即 `ndim` 属性(秩)。

 `numpy.ndarray.size`数组中所有元素的总量,相当于数组的`shape`中所有元素的乘积,例如矩阵的元素总量为行与列的乘积。 

`numpy.ndarray.dtype` `ndarray` 对象的元素类型。

`numpy.ndarray.itemsize`以字节的形式返回数组中每一个元素的大小。

a = np.array([1,2,3,4,5,6])
print(a.dtype)
print(a.ndim)
print(a.shape)
print(a.size)
print(a.itemsize)

#int32
#1
#(6,)
#6
#4

b = np.array(([1,2,3],[4,5,6.0]))
print(b.dtype)
print(b.ndim)
print(b.shape)
print(b.size)
print(b.itemsize)

#float64
#2
#(2, 3)
#6
#8

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值