#! /usr/bin/env python3 # def python02 ( ): #*****************************************************************************80 # ## python02() carries out exercises for the python02 lab. # # Modified: # # 05 May 2022 # import numpy as np print ( '' ) print ( 'python02():' ) print ( ' Exercises for python02 lab.' ) # # Demonstrate the use of numpy. # x = np.sqrt ( 20.0 ) print ( '' ) print ( ' numpy.sqrt ( 20.0 ) = ', x ) # # Read the data. # data = np.loadtxt ( fname = 'inflammation-01.csv', delimiter = ',' ) print ( '' ) print ( ' Data read from file:' ) print ( data ) print ( '' ) print ( ' type(data) = ', type ( data ) ) print ( ' data.dtype = ', data.dtype ) print ( ' data.shape = ', data.shape ) # # Access individual items. # print ( ' First entry is ', data[0,0] ) print ( ' Middle entry is ', data[30,30] ) print ( ' Last entry is ', data[59,39] ) # # Work with individual entries. # print ( ' data[0,0] = ', data[0,0] ) save = data[0,0] type ( data[0,0] ) x = data[0,0] - 2.0 * data[0,1] + data[0,2] print ( ' x = data[0,0] - 2.0 * data[0,1] + data[0,2] = ', x ) data[0,0] = 1.0 print ( ' data[0,0] = ', data[0,0] ) data[0,0] = save # Restore the original value. # # Print row 17 # print ( data[17,:] ) # # Print column 25 # print ( data[:,25] ) # # Print a subtable. # print ( data[:3,36:] ) # # Statistics for entire table. # maxval = np.max ( data ) minval = np.min ( data ) average = np.mean ( data ) stdev = np.std ( data ) print ( '' ) print ( ' Statistics for entire table:' ) print ( ' maximum = ', maxval ) print ( ' minimum = ', minval ) print ( ' average = ', average ) print ( ' stdev = ', stdev ) # # Statistics for patient 17 # maxvali17 = np.max ( data[17,:] ) minvali17 = np.min ( data[17,:] ) averagei17 = np.mean ( data[17,:] ) stdevi17 = np.std ( data[17,:] ) print ( '' ) print ( ' Statistics for row i = 17' ) print ( ' maximum = ', maxvali17 ) print ( ' minimum = ', minvali17 ) print ( ' average = ', averagei17 ) print ( ' stdev = ', stdevi17 ) # # Statistics for day 25 # maxvalj25 = np.max ( data[:,25] ) minvalj25 = np.min ( data[:,25] ) averagej25 = np.mean ( data[:,25] ) stdevj25 = np.std ( data[:,25] ) print ( '' ) print ( ' Statistics for row j = 25' ) print ( ' maximum = ', maxvalj25 ) print ( ' minimum = ', minvalj25 ) print ( ' average = ', averagej25 ) print ( ' stdev = ', stdevj25 ) # # Row and column measurements. # meanrows = np.mean ( data, axis = 1 ) print ( '' ) print ( ' meanrows = np.mean ( data, axis = 1 )' ) print ( ' meanrows = ', meanrows ) print ( ' meanrows.shape = ', meanrows.shape ) print ( ' meanrows[25] = ', meanrows[25] ) maxcols = np.max ( data, axis = 0 ) print ( '' ) print ( ' maxcols = np.max ( data, axis = 0 )' ) print ( ' maxcols = ', maxcols ) print ( ' maxcols.shape = ', maxcols.shape ) print ( ' maxcols[17] = ', maxcols[17] ) # # String indexing # s1 = 'breakfast' print ( '' ) print ( ' s1 = ', s1 ) print ( ' s1[0] = ', s1[0] ) print ( ' s1[0:0] = ', s1[0:0] ) # Surprise! print ( ' s1[0:2] = ', s1[0:2] ) # # Indexing tricks. # s1 = 'breakfast' s2 = 'lunch' print ( '' ) print ( ' s1 = ', s1 ) print ( ' s2 = ', s2 ) print ( ' s2[1:] = ', s2[1:] ) print ( ' s1[:2] + s2[1:] = ', s1[:2] + s2[1:] ) print ( ' s1[5:-1] = ', s1[5:-1] ) # # Write one expression that gets last three characters of any string. # a = -3 b = -1 s = 'buffalo' print ( ' s[',a,':',b,'] = ', s[a:b] ) s = 'bugblatter beast of traal' print ( ' s[',a,':',b,'] = ', s[a:b] ) s = 'me' print ( ' s[',a,':',b,'] = ', s[a:b] ) s = 'buffalo' print ( ' s = ', s ) print ( ' s[3:3] = ', s[3:3] ) print ( '' ) print ( ' data[3:3,4:4].shape = ', data[3:3,4:4].shape ) print ( ' data[3:3,;].shape = ', data[3:3,:].shape ) # # Create arrays. # rowvec = np.array ( [ 0, 1, 2 ] ) print ( '' ) print ( ' rowvec = ', rowvec ) table = np.array ( [ [ 0, 1, 2 ], [ 10, 11, 12 ], [ 20, 21, 22 ] ] ) print ( ' table = ', table ) colvec = np.array ( [ [ 0 ], [ 10 ], [ 20 ] ] ) print ( ' colvec = ', colvec ) # # Stacking. # A = np.array ( [ [ 1, 2, 3 ], [ 4, 5, 6 ], [ 7, 8, 9 ] ] ) print ( '' ) print ( ' A = ', A ) print ( ' np.hstack( [A,A] ) = ', np.hstack ( [ A, A ] ) ) print ( ' np.vstack( [A,A] ) = ', np.vstack ( [ A, A ] ) ) # # Differences. # sample = data[17,10:15] change = np.diff ( sample ) print ( '' ) print ( ' sample = ', sample ) print ( ' np.diff ( sample ) = ', np.diff ( sample ) ) changes = np.diff ( data ) print ( ' np.diff(data) = ', np.diff ( data ) ) return if ( __name__ == "__main__" ): python02 ( )