out[ ]array([( )( - )]dtype=[(' ''< ')(' ''< ')]there are several ways to specify structured dtype (see the online numpy documentationone typical way is as list of tuples with (field_namefield_data_typenowthe elements of the array are tuple-like objects whose elements can be accessed like dictionaryin [ ]sarr[ out[ ]( in [ ]sarr[ ][' 'out[ ] the field names are stored in the dtype names attribute on accessing field on the structured arraya strided view on the data is returned thus copying nothingin [ ]sarr[' 'out[ ]array( ]nested dtypes and multidimensional fields when specifying structured dtypeyou can additionally pass shape (as an int or tuple)in [ ]dtype [(' 'np int )(' 'np int )in [ ]arr np zeros( dtype=dtypein [ ]arr out[ ]array([([ ] )([ ] )([ ] )([ ] )]dtype=[(' ''< '( ,))(' ''< ')]in this casethe field now refers to an array of length three for each recordin [ ]arr[ ][' 'out[ ]array([ ]convenientlyaccessing arr[' 'then returns two-dimensional array instead of one-dimensional array as in prior examplesin [ ]arr[' 'out[ ]array([[ ][ ][ ][ ]]this enables you to express more complicatednested structures as single block of memory in an array thoughsince dtypes can be arbitrarily complexwhy not nested dtypeshere is simple examplestructured and record arrays www it-ebooks info