class_docstr: Numpy printer which handles vectorized piecewise functions,
  logical operators, etc.
class_docstr_tok: ["Numpy","printer","which","handles","vectorized","piecewise","functions",",","logical","operators",",","etc","."]
code: def _print_DotProduct(self, expr):
      # DotProduct allows any shape order, but numpy.dot does matrix
      # multiplication, so we have to make sure it gets 1 x n by n x 1.
      arg1, arg2 = expr.args
      if arg1.shape[0] != 1:
          arg1 = arg1.T
      if arg2.shape[1] != 1:
          arg2 = arg2.T
  
      return "%s(%s, %s)" % (
          self._module_format(self._module + ".dot"),
          self._print(arg1),
          self._print(arg2),
      )
  
imports: from sympy.core import S
  from sympy.core.function import Lambda
  from sympy.core.power import Pow
  from .pycode import PythonCodePrinter, _known_functions_math, _print_known_const, _print_known_func, _unpack_integral_limits, ArrayPrinter
  from .codeprinter import CodePrinter
label_desc: Use image node_id 6 for calling the NumPyPrinter obj's underlying member method code with example usage: obj._print_DotProduct(expr) and returns: unknown