Fix Sympy Not Working: TypeError

  • Thread starter Thread starter ergospherical
  • Start date Start date
Click For Summary
The discussion addresses a TypeError encountered in Python when using the SymPy library to create a matrix. The error message indicates that the input data type is not understood, specifically expecting a "list of lists" or "lists of values." To resolve this, the correct format for creating a matrix with SymPy is demonstrated by using a nested list structure. The example provided shows how to define a matrix 'g' using the appropriate syntax: g = sp.Matrix([[g00,g01,g02,g03],[g10,g11,g12,g13],[g20,g21,g22,g23],[g30,g31,g32,g33]]). The discussion highlights the importance of using this format to avoid errors and suggests that while SymPy matrices can be cumbersome, alternatives like numpy.ndarray may offer a more user-friendly experience.
ergospherical
Science Advisor
Homework Helper
Education Advisor
Insights Author
Messages
1,100
Reaction score
1,387
Computer says "TypeError: Data type not understood; expecting list of lists or lists of values."

Python:
import sympy as sp

t,r,a,b = sp.symbols('t r a b')

g00 = -(1-(1/r))
g01 = 0
g02 = 0
g03 = 0
g10 = 0
g11 = 1/(1-(1/r))
g12 = 0
g13 = 0
g20 = 0
g21 = 0
g22 = r**2
g23 = 0
g30 = 0
g31 = 0
g32 = 0
g33 = (r**2)*((sp.sin(a))**2)

g = sp.Matrix([g00,g01,g02,g03],[g10,g11,g12,g13],[g20,g21,g22,g23],[g30,g31,g32,g33])
print(g)
 
Technology news on Phys.org
Make a list as a variable named “glist”

and then use it as the argument to Matrix

find an example online using sp.Matrix as a reference.
 
  • Like
Likes ergospherical
You just need to make the Matrix input a nested list, like this:
Python:
g = sp.Matrix([[g00,g01,g02,g03],[g10,g11,g12,g13],[g20,g21,g22,g23],[g30,g31,g32,g33]])

This is what the error message means when it says a "list of lists".
 
  • Like
Likes sysprog, ergospherical and pbuk
Aah the old list of lists trick -- Maxwell Smart of Get Smart!
 
Matrices as lists of lists are horrible, numpy.ndarray is much nicer.
 
  • Like
Likes jim mcnamara and jedishrfu
Learn If you want to write code for Python Machine learning, AI Statistics/data analysis Scientific research Web application servers Some microcontrollers JavaScript/Node JS/TypeScript Web sites Web application servers C# Games (Unity) Consumer applications (Windows) Business applications C++ Games (Unreal Engine) Operating systems, device drivers Microcontrollers/embedded systems Consumer applications (Linux) Some more tips: Do not learn C++ (or any other dialect of C) as a...

Similar threads

  • · Replies 9 ·
Replies
9
Views
5K
  • · Replies 15 ·
Replies
15
Views
4K