你现在可以解释一下这行得通吗?Python Numpy.arrays 使用常规列表


positions = ['GK', 'M', 'A', 'D', ...]
heights = [191, 184, 185, 180, ...]

列表中的每个元素对应于一个玩家。第一个列表"位置"包含代表每个玩家位置的字符串。可能的位置是:'GK'(守门员(,'M'(中场(,'A'(进攻(和'D'(防守(。第二个列表heights包含表示玩家身高的整数(以厘米为单位(。

1( 首先我将位置和高度转换为 numpy 数组:

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

然后我找出守门员的高度:gk_heights

gk_heights = np_heights[np_positions =='GK'] 

此代码工作正常,并执行它应该执行的操作。

现在问题来了。

不是np_heightsnp_positions两个单独的列表。 这条线是怎么回事:

gk_heights = np_heights[np_positions =='GK']

知道np_positions中的某个索引与np_heights中的某个索引相关联吗?

这是Data Camp在线课程的最后一个问题: 网址: https://campus.datacamp.com/courses/intro-to-python-for-data-science/chapter-4-numpy?ex=16

任何帮助将不胜感激。

这个问题的答案与表达式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的第一个元素。希望这个解释是有道理的。

从这个解释中应该学到的是,你的两个数组最好是相同的顺序。这两个数组不会相互通信哪个玩家被放入哪个索引。np_heights[np_positions=='GK']用人的话说:"守门员在np_positions在哪里?哦,它在索引 0 中(或其他?( - 返回索引 0 值np_height.

因此,如果守门员是一个数组的第一个元素,那么最好是第二个数组的第一个元素(依此类推(,以便此表达式正确运行。

相关内容

  • 没有找到相关文章

最新更新