Я создаю программу с пользовательским интерфейсом, которая отслеживает мой ежедневный прогресс, пока я учусь играть на бас-гитаре.
В этой программе я создаю массивы для всей информации, которую я отслеживаю, в дополнение к массиву, который отслеживает частоту того, насколько я практикую конкретную полосу. Это часть программы:
import numpy as np
count = 1
complete_arr=[]
artists_arr=[]
while count <= 3:
# Inputs
time_in = input("Daily Time: ")
pa_in = input("Playing Ability: ")
enj_in = input("Enjoyment: ")
a1_in = str(input("Artist 1: "))
a2_in = str(input("Artist 2: "))
a3_in = str(input("Artist 3: "))
notes_in = str(input("Notes: "))
# Append to Artist matrix
artists_arr.append([a1_in, a2_in, a3_in])
# Append to complete matrix
complete_arr.append([count, time_in, pa_in, enj_in, a1_in, a2_in, a3_in, notes_in])
count += 1
# Transform into numpy arrays
complete_arr_np = np.asarray(complete_arr)
# print(complete_arr_np)
artists_arr_np = np.asarray(artists_arr)
print(artists_arr_np)
# Counts the number of times a unique artist appears
(unique, counts) = np.unique(artists_arr_np, return_counts=True)
band_count = np.asarray((unique, counts)).T
print(band_count)
Допустим, в течение этого периода выборки я практикую полосу A 3 раза, полосу B 1 раз и полосу C 1 раз. Остается 4 пустых записи. Какой запуск это дает мне:
print(artists_arr_np)
[['A', 'B', ''], ['A', 'C', ''], ['A', '', '']]
print(band_count)
[['' '4']
['A' '3']
['B' '1']
['C' '1']]
Все работает, как ожидалось, но вот проблема. Мне нужен способ обнаружить, как только была обнаружена уникальная группа, а затем добавить ее с указанием жанра этой группы. Таким образом, после запуска этого кода обнаруживаются 3 новых диапазона (технически 4, включая пустую запись): A, B, C. В идеале после запуска кода я хочу, чтобы меня попросили ввести жанры каждой уникальной группы. В результате получается следующее:
[['' '4' '']
['A' '3' 'Rock']
['B' '1' 'R&B']
['C' '1' 'R&B']]
Как мне go это сделать? Я предполагаю, что это будет включать комбинацию циклов if и for, но не знаю, как именно. Если это не очевидно, я новичок в python, поэтому ответ может быть проще, чем я думаю. Частота не имеет значения, но я считаю, что здесь должна храниться информация о жанре.