<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />More and more I hear about Engineers having Python on their desktops in addition to the other complementary analysis tools we know of: MATLAB, R, SAS etc. We don't yet have a specific interface to Python like we do for these other software programs but I'm keen to gauge interest. (No promises, though!)
I'd be curious if any of your customers is:
- Currently using Python for solving some analytical problems.
- Currently has Python in their analytical toolboxes.
- Currently has any pains around the use of Python where JMP may compliment -- DOE, easy data visualization, optimizing simulation models, UI-design etc.
I think that Python is not a competitor to JMP -- being a general programming language. Although with some IDEs intended for science and engineering uses (e.g. Anaconda), it might be thought to be a competitor in some cases. I am working on some positioning and thoughts. Please feel free to make comments and suggestions.
Python is a popular general purpose programming language which is well suited to a wide range of problems.
Python – with the right set of add-ons – is comparable to domain-specific languages such as R or MATLAB. If you are wondering whether you should bother with Python (or another language), some considerations includes:
You might want to consider R if:
• You want to apply statistical methods. The statistics library of R is second to none, and R is clearly at the forefront in new statistical algorithm development – meaning you are most likely to find that new(ish) procedure in R.
• Performance is of secondary importance.
• Free is important.
You might want to consider MATLAB if:
• Commercial support, and a clean channel to report issues, is important.
• Documentation and organization of modules is more important than raw routine availability.
• Performance is more important than scope of available packages. MATLAB has optimizations, such as Just-in-Time (JIT) compilation of loops, which is not automatically available in most other packages.
Having read the reasons to choose another package, you may wonder why you should consider Python.
• You need a language which can act as an end-to-end solution so that everything from accessing web-based services and database servers, data management and processing and statistical computation can be accomplished in a single language. Python can even be used to write server-side apps such as dynamic website (see e.g. http://stackoverflow.com), apps for desktop-class operating systems with graphical user interfaces and even tablets and phones apps (iOS and Android).
• Data handling and manipulation– especially cleaning and reformatting–is an importantconcern. Python is substantially more capable at data set construction than either R or MATLAB.
• Performance is a concern, but not at the top of the list.
• Free is an important consideration – Python can be freely deployed, even to 100s of servers in a compute cluster or in the cloud (e.g. Amazon Web Services or Azure).
• Knowledge of Python, as a general purpose language, is complementary to other languages.
So the question is where does JMP fit in?
• JMP has world-class Design of Experiments (DOE) tools (Custom Design, DSDs, Covering Arrays, Space-filling-designs) that simply are not available in Python packages. The synergy here is to use JMP to create the experiments needed to run a simulation or program in Python, collect the responses and then do the analysis in JMP.
• Exploratory tools to quickly look at data generated from Python programs. Quickly build graphs using the Graph Builder, or custom dashboards using the Application Builder.
• Access to many of the most powerful modeling tools in JMP and JMP Pro to quickly make sense from the data generated in Python programs.
• Simulate more efficiently with Design of Experiments, co-optimize multiple responses and perform trade-off-analyses, do further Monte Carlo simulation.
So while not as integrated as the JMP interface to MATLAB and R, JMP and Python can live on engineer's desktops providing the ability to get more done in a day than simply Python alone.
Hi Dan,
Professors at Wesleyan University, through support from SAS and an NSF grant, developed a MOOC entitled Passion Driven Statistics. This course is available on line at Passion-Driven Statistics - students learn and can use either Python or SAS. The focus is on learning the analytic and machine learning skills needed to solve real research problems.
Mia
Thank you, Erich -- please let me know what you find out.
Dan,
A prospect asked me about using JMP with Python today. I had just a brief phone conversation with him and will learn more in my meeting with him in a couple weeks; however, it sounds like his company uses Python primarily to do data compiling/restructuring-type things. (I seemed to remember a thread about Python on the JMP SE Community, and that's how I ended up here.)
Erich
Hi Daniel,
I once had a demo download customer (private one) asked if JMP interacts with Python. Here is the question he asked:
- I would create an SQL query from your builder directly, however I would then use the SQL dynamically from my main program of Python. Please could you explain how python can interact with JMP, is it possible to extract the JMP query and use the SQL output in my Python program?
Answer I gave him after having talked to Eric: You can create a Query with the Query Builder in JMP and save the SQL script to be used elsewhere. Of course you would need to establish a connection from your main program to the database you want to use the query script for
So in this case it was about automating a routine. This is where I know Python from being used often: You build a Website with several Tasks you could do. I couldn't get more Details from this customer and he didn't buy JMP, but may this helps you further.
Martin
I do get customers asking if JMP integrates with Python. I haven't dug for why they want it, but I think it's more moving data around than analysis. I'll ask more questions the next time I run into this. It would have been a "nice to have" for them, but didn't stop them from wanting JMP.