本文最后更新于 258 天前,其中的信息可能已经过时,如有错误请发送邮件到wuxianglongblog@163.com
记录数组
记录数组(record array
)与结构数组类似:
import numpy as np
质点类型:
partical_dtype = np.dtype([('mass', 'float'),
('velocity', 'float')])
生成记录数组要使用 numpy.rec
里的 fromrecords
方法:
from numpy import rec
particals_rec = rec.fromrecords([(1,1), (1,2), (2,1), (1,3)],
dtype = partical_dtype)
particals_rec
rec.array([(1.0, 1.0), (1.0, 2.0), (2.0, 1.0), (1.0, 3.0)],
dtype=[('mass', '
在记录数组中,域可以通过属性来获得:
particals_rec.mass
array([ 1., 1., 2., 1.])
也可以通过域来查询:
particals_rec['mass']
array([ 1., 1., 2., 1.])
不过,记录数组的运行效率要比结构化数组要慢一些。
也可以通过将一个结构化数组看成记录数组:
particals = np.array([(1,1), (1,2), (2,1), (1,3)],
dtype = partical_dtype)
使用 view
方法看成 recarray
:
particals_rec = particals.view(np.recarray)
particals_rec.mass
array([ 1., 1., 2., 1.])
particals_rec.velocity
array([ 1., 2., 1., 3.])
对于自定义的类型,可以通过它的 names
属性查看它有哪些域:
particals.dtype.names
('mass', 'velocity')