diff --git a/sympy/core/sympify.py b/sympy/core/sympify.py index 74a04d2c3d9b..4589f9c0801f 100644 --- a/sympy/core/sympify.py +++ b/sympy/core/sympify.py @@ -303,6 +303,12 @@ def sympify(a, locals=None, convert_xor=True, strict=False, rational=False, except AttributeError: pass + try: + from ..tensor.array import Array + return Array(a.flat, a.shape) # works with e.g. NumPy arrays + except AttributeError: + pass + if not isinstance(a, string_types): for coerce in (float, int): try: @@ -313,12 +319,6 @@ def sympify(a, locals=None, convert_xor=True, strict=False, rational=False, if strict: raise SympifyError(a) - try: - from ..tensor.array import Array - return Array(a.flat, a.shape) # works with e.g. NumPy arrays - except AttributeError: - pass - if iterable(a): try: return type(a)([sympify(x, locals=locals, convert_xor=convert_xor, diff --git a/sympy/core/tests/test_sympify.py b/sympy/core/tests/test_sympify.py index ae176ee5f87d..a5f1c73bb3f9 100644 --- a/sympy/core/tests/test_sympify.py +++ b/sympy/core/tests/test_sympify.py @@ -13,6 +13,7 @@ from sympy.core.compatibility import exec_, HAS_GMPY, PY3 from sympy.sets import FiniteSet, EmptySet from sympy.tensor.array.dense_ndim_array import ImmutableDenseNDimArray +from sympy.tensor.array import Array from sympy.external import import_module import mpmath @@ -602,3 +603,7 @@ def equal(x, y): def test_sympify_rational_numbers_set(): ans = [Rational(3, 10), Rational(1, 5)] assert sympify({'.3', '.2'}, rational=True) == FiniteSet(*ans) + + +def test_issue_13924(): + assert S(1)*numpy.array([1]) == Array([1])