Python

package-SpeciFIC: JUPYTER/IPYTHONPANDAS, MATPLOTLIB, H5PY

List Splicing

combine two lists with alternating order


# combination does not work if two lists are of different sizes
list1=[1,2,3]
list2=[4,5,6]
combined_list=[0]*len(list1)*2
combined_list[::2]=list1
combined_list[1::2]=list2

List Generation

generate parameter search list


# generate n points around xo with a step of dx
import numpy as np
x=np.array([i*dx for i in range(n)]) # generate points with proper separation
x=x+xo-x.mean() # shift mean to desired value

generate uniform or Chebyshev grid for fitting


# generate an n-point uniform grid from 2 to 4
x = np.linspace(2,4,n)
# generate an n-point Chebyshev grid from 2 to 4
x = [np.cos( (2*k+1)*np.pi/(2*n) ) for k in range(n)] # 0 to 1
x = (x-0.5)*2+3 # shift origin to 0, stretch, shift origin to 3

String Manipulation

format complex numbers

"complex number z={:2.2f}".format(z)

Matrix Manipulation

reshape and transpose (permute indeices)

test = np.zeros(1,2,3)
print test.shape
test = test.transpose((1,0,2))
print test.shape
test.reshape(2,3)