Python
numpy

array sample

Z = np.zeros(10, [ ('position', [ ('x', float, 1),
                                  ('y', float, 1)]),
                   ('color',    [ ('r', float, [1,3]),
                                  ('g', float, 2),
                                  ('b', float, 1)])])
print(Z)
print(Z[0]['position'])
print(Z[0]['color']['g'])
[(( 0.,  0.), ([[ 0.,  0.,  0.]], [ 0.,  0.],  0.))
 (( 0.,  0.), ([[ 0.,  0.,  0.]], [ 0.,  0.],  0.))
 (( 0.,  0.), ([[ 0.,  0.,  0.]], [ 0.,  0.],  0.))
 (( 0.,  0.), ([[ 0.,  0.,  0.]], [ 0.,  0.],  0.))
 (( 0.,  0.), ([[ 0.,  0.,  0.]], [ 0.,  0.],  0.))
 (( 0.,  0.), ([[ 0.,  0.,  0.]], [ 0.,  0.],  0.))
 (( 0.,  0.), ([[ 0.,  0.,  0.]], [ 0.,  0.],  0.))
 (( 0.,  0.), ([[ 0.,  0.,  0.]], [ 0.,  0.],  0.))
 (( 0.,  0.), ([[ 0.,  0.,  0.]], [ 0.,  0.],  0.))
 (( 0.,  0.), ([[ 0.,  0.,  0.]], [ 0.,  0.],  0.))]
( 0.,  0.)
[ 0.  0.]