Sep-17-2019, 12:02 PM
(This post was last modified: Sep-17-2019, 12:02 PM by Nitram. Edited 1 time in total.)

Hi all,

I am fairly new to Python and teaching myself. I am working on importing data from a txt file into a NumPy structured array. I have loaded the data in to give three fields: the IATA code of an airport, the airport's latitude, and it's longitude...

This gives me the following array...

I am fairly new to Python and teaching myself. I am working on importing data from a txt file into a NumPy structured array. I have loaded the data in to give three fields: the IATA code of an airport, the airport's latitude, and it's longitude...

import numpy as np fname = 'busiest_airports.txt' dtype1 = np.dtype([('IATA', '|S4'), ('latitude', 'f8'), ('longitude', 'f8')]) a = np.loadtxt(fname, dtype = dtype1, usecols = (0, -2, -1)) print(a)

This gives me the following array...

array([(b'FRA', 50.026, 8.543), (b'DEN', 39.862, -104.673), (b'BKK', 13.681, 100.747), (b'SYD', -33.946, 151.177), (b'GRU', -23.432, -46.47 ), (b'CLT', 35.214, -80.943), (b'SFO', 37.619, -122.375), (b'IAH', 29.984, -95.341), (b'ATL', 33.637, -84.428), (b'ICN', 37.469, 126.451), (b'DFW', 32.897, -97.038), (b'HND', 35.552, 139.78 ), (b'LAS', 36.08 , -115.152), (b'PHX', 33.434, -112.012), (b'PVG', 31.143, 121.805), (b'DXB', 25.253, 55.364), (b'MIA', 25.793, -80.291), (b'IST', 40.977, 28.815), (b'AMS', 52.309, 4.764), (b'CAN', 23.392, 113.299), (b'LAX', 33.943, -118.408), (b'CGK', -6.126, 106.656), (b'LHR', 51.477, -0.461), (b'JFK', 40.64 , -73.779), (b'SIN', 1.35 , 103.994), (b'CDG', 49.013, 2.55 ), (b'HKG', 22.309, 113.915), (b'ORD', 41.979, -87.905), (b'KUL', 2.746, 101.71 ), (b'PEK', 40.08 , 116.585)], dtype=[('IATA', 'S4'), ('latitude', '<f8'), ('longitude', '<f8')])Now I want to write a function so that I can call the IATA code of an airport and have it's latitude returned. I have tried

def get_lat(x): x = a['IATA'][i] latitude = a['latitude'][i] return latitudeThe idea was to try to set the index 'i' depending on which IATA code is input as the argument of the function. For example an argument of 'BKK' would set i = 1. However I get the error message that 'i' is not defined. Does anyone know how to correctly define the function? Thanks in advance