Можете ли вы объяснить, сейчас это работает?Python Numpy.arrays работает с обычными списками - PullRequest
0 голосов
/ 19 мая 2018
positions = ['GK', 'M', 'A', 'D', ...]
heights = [191, 184, 185, 180, ...]

Каждый элемент в списке соответствует игроку.Первый список, позиции, содержит строки, представляющие позицию каждого игрока.Возможные позиции: 'GK' (вратарь), 'M' (полузащита), 'A' (атака) и 'D' (защита).Второй список, heights, содержит целые числа, представляющие рост игрока в см.

1) Сначала я преобразую позиции и высоты в массивы:

np_heights = np.array(heights)
np_positions = np.array(positions)

Затем узнаю высоты вратарей: gk_heights

gk_heights = np_heights[np_positions =='GK'] 

Этот код работаетотлично и делает то, что должен.

Теперь вопрос.

не np_heights и np_positions два отдельных списка.как эта строка:

gk_heights = np_heights[np_positions =='GK']

знает, что определенный индекс в np_positions связан с определенным индексом в np_heights?

Это последний вопрос онлайн-курса Data Camp: URL: https://campus.datacamp.com/courses/intro-to-python-for-data-science/chapter-4-numpy?ex=16

Буду признателен за любую помощь.

1 Ответ

0 голосов
/ 19 мая 2018

Ответ на этот вопрос связан с тем, что означает выражение np_positions=='GK'.Вы должны попробовать запустить только эту строку, чтобы увидеть, что вывод.По сути, выходные данные этой строки представляют собой логический массив той же формы, что и np_positions, а элементы логического массива имеют значение True, где условное условие удовлетворяется, и False, где условное условие не выполняется.Итак, вы должны получить массив обратно как np_positions=='GK' = array([True,False,False,False...]).И затем, когда вы используете этот массив как срез индекса в np_heights, выражение np_heights[np_positions=='GK'] говорит вам «выбрать значения np_heights, где внутренний массив, np_positions=='GK', равен True. И так, он будетвыберите первый элемент np_heights. Надеюсь, это объяснение имело смысл.

Из этого объяснения следует извлечь из этого то, что ваши два массива лучше будут в том же порядке 1016 *. Два массива не связываются друг с другом, в зависимости от того, какой игрок помещен в какой индекс. Выражение np_heights[np_positions=='GK'] говорит человеческими словами: «где в np_positions находится (являются) вратарь (и)?О, это в индексе 0 (или других?) - вернуть значение индекса 0 np_height.

Таким образом, если вратарь является первым элементом одного массива, лучше будет первым элементом второго массива(и так далее, и так далее), чтобы это выражение работало правильно.

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