Используйте данные из файла CSV, чтобы распечатать год, месяц и соответствующее значение> 170 - PullRequest
1 голос
/ 31 марта 2020

Я очень новичок в программировании и застрял на домашнем задании. Я не ищу прямых ответов, скорее, чтобы кто-то объяснил, какие шаги я должен предпринять.

Вот мои текущие шаги и вывод:

Ввод:

data_new = np.loadtxt('lecture14_precipitation.csv',delimiter=',',unpack=True)
arr_years = np.arange(1916,2017, dtype = 'int')
arr_months = np.arange(1,13, dtype = 'int')
new = np.where(data_new > 170)
for a,b in zip(arr_years,arr_months):
    print(a,b,data_new[new])

Вывод:

1916 1 [181.9 189.3 198.7 185.9 175.6 203.  186.4 175.4 177.3 176.3]
1917 2 [181.9 189.3 198.7 185.9 175.6 203.  186.4 175.4 177.3 176.3]
1918 3 [181.9 189.3 198.7 185.9 175.6 203.  186.4 175.4 177.3 176.3]
1919 4 [181.9 189.3 198.7 185.9 175.6 203.  186.4 175.4 177.3 176.3]
1920 5 [181.9 189.3 198.7 185.9 175.6 203.  186.4 175.4 177.3 176.3]
1921 6 [181.9 189.3 198.7 185.9 175.6 203.  186.4 175.4 177.3 176.3]
1922 7 [181.9 189.3 198.7 185.9 175.6 203.  186.4 175.4 177.3 176.3]
1923 8 [181.9 189.3 198.7 185.9 175.6 203.  186.4 175.4 177.3 176.3]
1924 9 [181.9 189.3 198.7 185.9 175.6 203.  186.4 175.4 177.3 176.3]
1925 10 [181.9 189.3 198.7 185.9 175.6 203.  186.4 175.4 177.3 176.3]
1926 11 [181.9 189.3 198.7 185.9 175.6 203.  186.4 175.4 177.3 176.3]
1927 12 [181.9 189.3 198.7 185.9 175.6 203.  186.4 175.4 177.3 176.3]

Я загрузил файл csv, в нем 12 столбцов и 100 строк (представляющих интервал в 12 месяцев и 100 лет). Мне удалось извлечь все значения выше 170 из файла, но я изо всех сил пытаюсь сопоставить их с их конкретными c столбцами и строками (месяцы и годы). Я хочу, чтобы каждое значение свыше 170 было сопоставлено с указанным c годом и месяцем, связанным с ним.

Ответы [ 2 ]

0 голосов
/ 31 марта 2020
# get the (x, y) indices of values > 170
idx = np.where(data_new > 170)

# yr = x_indices + 1916 (assuming 1916 is the lowest year and yearly frequency)
yr, mn = idx[0] + 1916, idx[1]

# create a dictionary where the key is a tuple (year, month) and 
# the value is the value of that cell in your `data_new`
over_170 = dict(zip(zip(yr, mn), data_new[idx]))
0 голосов
/ 31 марта 2020

Я думаю, вы можете использовать их из словаря для хранения:

например:

all_data = list()

for a,b in zip(arr_years,arr_months):
    temp_dict = dict()
    temp_dict["year"]  = a
    temp_dict["month"] = b
    temp_dict["data"]  = data_new[new]
    all_data.append(temp_dict)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...