# cf.Data.outerproduct

`Data.``outerproduct`(e, i=False)

  Compute the outer product with another data array.

  The axes of result will be the combined axes of the two input arrays:

      >>> d.outerproduct(e).ndim == d.ndim + e.ndim
      True
      >>> d.outerproduct(e).shape == d.shape + e.shape
      True

  Parameters: | e : data-like The data array with which to form the outer product. i : bool, optional If True then update the data array in place. By default a new data array is created.
  Returns: | out: cf.Data
  Examples: |

      >>> d = cf.Data([1, 2, 3], 'metre')
      >>> o = d.outerproduct([4, 5, 6, 7])
      >>> o
      <CF Data: [[4, ..., 21]] m>
      >>> print o.array
      [[ 4  5  6  7]
       [ 8 10 12 14]
       [12 15 18 21]]

      >>> e = cf.Data([[4, 5, 6, 7], [6, 7, 8, 9]], 's-1')
      >>> o = d.outerproduct(e)
      >>> o
      <CF Data: [[[4, ..., 27]]] m.s-1>
      >>> print d.shape, e.shape, o.shape
      (3,) (2, 4) (3, 2, 4)
      >>> print o.array
      [[[ 4  5  6  7]
        [ 6  7  8  9]]
       [[ 8 10 12 14]
        [12 14 16 18]]
       [[12 15 18 21]
        [18 21 24 27]]]