Немного смущен, почти уверен, что я что-то здесь упускаю: индексированный массив с элементом из другого массива? - PullRequest
0 голосов
/ 05 апреля 2020

Изображение

Я довольно запутался в строке 11, где np_heights был проиндексирован с помощью np_positions == "GK" , который является элементом из другого массива. (Если я не ошибаюсь)

Я написал эту строку, как указано в datacamp: Извлеките все высоты вратарей. Вы можете использовать небольшую хитрость здесь: используйте np_positions == 'GK' в качестве индекса для np_heights. Присвойте результат gk_heights.

Код сработал и говорит, что я получил правильный ответ, но все же я немного сбит с толку относительно того, что произошло в строке 11. Можете ли вы действительно индексировать массив с помощью элемента из другого массива или я просто смотрю на это неправильно? хаха спасибо заранее!

Код записывается следующим образом:

# heights and positions are available as lists

# Import numpy
import numpy as np

# Convert positions and heights to numpy arrays: np_positions, np_heights
np_positions = np.array(positions)
np_heights = np.array(heights)

# Heights of the goalkeepers: gk_heights 
gk_heights = np_heights[np_positions == "GK"]

# Heights of the other players: other_heights
other_heights = np_heights[np_positions != "GK"]

# Print out the median height of goalkeepers. Replace 'None'
print("Median height of goalkeepers: " + str(np.median(gk_heights)))

1 Ответ

0 голосов
/ 05 апреля 2020

Сравнение между Numpy array и String вернет array из True или False, и если мы будем использовать его для инициализации, подобной той, которую вы упомянули в вопросе, array значений, соответствующих значение True будет инициализировано.

>>> import numpy as np
>>> positions = ["GK","Sf","RB"]
>>> hights = [6,6.1,7]
>>> np_positions = np.array(positions)
>>> np_heights = np.array(hights)

>>> np_positions == "GK"
array([ True, False, False])

>>> np_heights[np_positions == "GK"]
array([6.])

>>> gk_heights = np_heights[np_positions == "GK"]

>>> gk_heights
array([6.])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...