Python is great! I’ve being using python for a while (4 years) and it seems to me the most versatile and lightweight programming language one want to use in a scientific environment.
- General programming: Python supports almost any kind of programming style. Procedural, imperative, object oriented. Plus it it based on advanced objects like arrays, dictionaries, easy string formatting, complex numbers… If you can program it in any language, you can do it easier in Python.
- Very intuitive workflow: in the lab, code changes very quickly. Sometime you need to change a variable, sometime you hack for making an experiment work. Since Python is interpreted, changes are as fast as typing new code.
Scripts can be executed as quickly as double clicking them.
Having a huge standard library makes so that dependency are minimal, and you can move/copy/remove scripts as you like.
Once you have some stable code, you can call/import it from other scripts as it was a library. - Works everywhere: on PC, linux or Mac, with minimal overhead for the system. (Try to install labview or matlab on old pc..). Plus, is free (as in beer and speech)
- Controlling instrument (with and without GUI): You can use any ‘com’ port, or using the Visa drivers for additional options, i.e. GPIB port. In addition, you can directly use C/C++ libraries, as python functions, thanks to ctypes. I’ve being controlling low-level c-routines and high level National Instruments libraries (DAQmx.dll)
- Data analysis: python with numpy rivals matlab for matrices manipulations. You have a similar syntax and matlab scripts can be converted quite easily in python (sometime as easy as removing the ‘;’, reformatting the loops, and checking the indexes). Scipy provides some indispensable discrete math tools such as integrators, differential equations solvers, DFFT and optimizers. With matplotlib you can plot quite easily and generate latex-quality labels.
- The science world is turning Python-esque: more and more science departments are offering Python programming courses (Cornell PhysicsComputationalMethods), and companies are offering Python libraries and support.
Essential packages
Transition to Python3 is still slowly ongoing, so it’s safe and optimal working with Python 2.7. Python3 is not strictly ‘better’, but is an evolution of the language that breaks back-compatibility. Eventually everything will be converted (numpy now has a p3 version).
- Numpy
- Scipy
- matplotlib
- pyVisa (or, more limited, pyserial)
- ctypes (for using non-python api)
You can find everything (but not with the latest updated version) with
IDE
- Notepad++ (Versatile and lightweight text editor)
- Spyder (IDE that comprise texteditor + ipython console + variable explorer, similar to matlab setup)
- Ipython (Powerful python console line, created for numpy/scipy/matplotlib. Version 0.12 has a notebook mode, that behaves similarly to Mathematica interactive notebooks)
Snippets and tutorial
helloworld
[python]
import antigravity
# This is my hello comment
print ‘helloworld’
[/python]
Some more possiblities
[python]
# This is a simple function. z is a default value
def foo(x,y,z = 2):
"""You can also comment here
Indentation set the scope"""
return x+y**z # ** means ‘raise to the power’
x = 4
m = foo(x,3)
results = [] # This is an empty list
for i in xrange(20):
results.append( foo(x,i) )
# You can iterate through a list (or any other ‘iterable’)
for r in results:
print "value = %10.4f "%r # fprint syntax is used
[/python]
Array manipulation
[python]
## Import numpy library
from numpy import *
# create an array from a list of number
x = array([1,222,3.4,4])
# and one from array routines
y = linspace(200,300,4)
print x+y
print x*y # All the operations are element wise
print dot(x,y) # for matrix multiplication
# slice operations are indeed possible
x[:3] = y[1:] # numpy counts from 0 to N-1
[/python]
artane for sale online – order emulgel online diclofenac gel online purchase
order isotretinoin 20mg online – order avlosulfon generic buy deltasone generic
cefdinir ca – cleocin order buy generic cleocin
prednisone 5mg oral – elimite for sale purchase elimite creams
permethrin drug – buy generic acticin online buy cheap generic retin
betamethasone creams – betnovate us purchase benoquin generic
buy metronidazole 400mg generic – buy metronidazole 400mg generic buy generic cenforce over the counter
augmentin 625mg canada – synthroid where to buy oral synthroid
generic amoxiclav – brand synthroid 150mcg synthroid 100mcg pill
????? ????????? ???????? ???????? ??? ?????
cleocin online order – order indocin 50mg generic where to buy indocin without a prescription
http://www.detiseti.ru/modules/newbb_plus/viewtopic.php?topic_id=69139&post_id=248891&order=0&viewmode=flat&pid=0&forum=13#248891
purchase cozaar online cheap – losartan 50mg tablet order cephalexin sale
buy crotamiton cream for sale – purchase bactroban ointment without prescription aczone drug
bupropion oral – shuddha guggulu online purchase shuddha guggulu for sale
order modafinil generic – modafinil online buy meloset 3mg generic
prometrium without prescription – buy clomid 50mg generic buy clomiphene generic
capecitabine for sale – buy mefenamic acid without a prescription buy danazol sale
norethindrone cheap – norethindrone drug where to buy yasmin without a prescription
order alendronate 35mg pills – fosamax 35mg uk medroxyprogesterone 5mg drug