import numpy as np lst = [10, 20, 30, 40] arr = np.array([10, 20, 30, 40]) print lst print arr print lst[0], arr[0] print lst[-1], arr[-1] print lst[2:], arr[2:] lst[-1] = 'a string inside a list' lst arr[-1] = 'a string inside an array' arr.dtype arr[-1] = 1.234 arr np.zeros(5, dtype=np.float) np.zeros(3, dtype=np.int) print '5 ones:', np.ones(5, dtype=np.int) a = np.empty(4, dtype=np.float) a.fill(5.5) a np.array(256, dtype=np.uint8) float_info = ('{finfo.dtype}: max={finfo.max:<18}, ' 'approx decimal precision={finfo.precision};') print float_info.format(finfo=np.finfo(np.float32)) print float_info.format(finfo=np.finfo(np.float64)) np.array(1, dtype=np.uint8).astype(np.float32) np.arange(10, dtype=np.float64) np.arange(5, 7, 0.1) print "A linear grid between 0 and 1:" print np.linspace(0, 1, 5) print "A logarithmic grid between 10**2 and 10**4:" print np.logspace(2, 4, 3) import numpy as np import numpy.random print np.random.randn(5) norm10 = np.random.normal(10, 3, 5) print norm10 mask = norm10 > 9 mask print 'Values above 9:', norm10[mask] print 'Resetting all values above 9 to 0...' norm10[mask] = 0 print norm10 lst2 = [[1, 2, 3], [4, 5, 6]] arr2 = np.array([[1, 2, 3], [4, 5, 6]]) print arr2 print arr2.shape print lst2[0][1] print arr2[0, 1] print lst2[0:2][1] print arr2[0:2, 1] np.zeros((2, 3)) np.random.normal(10, 3, size=(2, 4)) arr = np.arange(8).reshape(2, 4) print arr arr = np.arange(8) arr_view = arr.reshape(2, 4) # Print the "view" array from reshape. print 'Before\n', arr_view # Update the first element of the original array. arr[0] = 1000 # Print the "view" array from reshape again, # noticing the first value has changed. print 'After\n', arr_view arr = np.arange(8).reshape(2, 4) print arr print ('Second element from dimension 0, ' 'last 2 elements from dimension one: \n'), print arr[1, 2:] print ('All elements bar the last from dimension 0, ' 'third element from dimension one: \n'), print arr[:-1, 2] print ('Second element from dimension 0 (maintaining its dimension), ' 'all elements from dimension one: \n'), print arr[1:2, :] print 'First row: ', arr[0], 'is equivalent to', arr[0, :] print 'Second row: ', arr[1], 'is equivalent to', arr[1, :] arr1 = np.empty((4, 6, 3)) print 'Orig shape: ', arr1.shape print arr1[...].shape print arr1[..., 0:2].shape print arr1[2:4, ..., ::2].shape print arr1[2:4, :, ..., ::-1].shape x = np.linspace(0, 9, 3) y = np.linspace(-8, 4, 3) x2d, y2d = np.meshgrid(x, y) print x2d print y2d print 'Data type :', arr.dtype print 'Total number of elements :', arr.size print 'Number of dimensions :', arr.ndim print 'Shape (dimensionality) :', arr.shape print 'Memory used (in bytes) :', arr.nbytes print 'Minimum and maximum :', arr.min(), arr.max() print 'Sum and product of all elements :', arr.sum(), arr.prod() print 'Mean and standard deviation :', arr.mean(), arr.std() print 'For the following array:\n', arr print 'The sum of elements along the rows is :', arr.sum(axis=1) print 'The sum of elements along the columns is :', arr.sum(axis=0) np.zeros((3, 4, 5, 6)).sum(axis=2).shape print 'Array:\n', arr print 'Transpose:\n', arr.T arr1 = np.arange(4) arr2 = np.arange(10, 14) print arr1, '+', arr2, '=', arr1 + arr2 print arr1, '*', arr2, '=', arr1 * arr2 1.5 * arr1 print np.arange(3) print np.arange(3) + 5 np.ones((3, 3)) + np.arange(3) a = np.arange(3).reshape((3, 1)) b = np.arange(3) print a, '+', b, '=\n', a + b arr1 = np.ones((2, 3)) arr2 = np.ones((2, 1)) # arr1 + arr2 arr1 = np.ones((2, 3)) arr2 = np.ones(3) # arr1 + arr2 arr1 = np.ones((1, 3)) arr2 = np.ones((2, 1)) # arr1 + arr2 arr1 = np.ones((1, 3)) arr2 = np.ones((1, 2)) # arr1 + arr2 np.arange(6).reshape((1, -1)) np.arange(6).reshape((2, -1)) arr = np.arange(6) print arr[np.newaxis, :, np.newaxis].shape x = np.linspace(0, 2*np.pi, 100) y = np.sin(x) x = np.arange(-5, 5.5, 0.5) y = np.exp(x) v1 = np.array([2, 3, 4]) v2 = np.array([1, 0, 1]) print v1, '.', v2, '=', np.dot(v1, v2) A = np.arange(6).reshape(2, 3) print A, '\n' print np.dot(A, A.T) print np.dot(A.T, A) print A, 'x', v1, '=', np.dot(A, v1)