首先,让我给出一些背景信息:我为生物学和数学专业的学生教授数学的第一门课程。在本课程中,我尝试为学生提供操作数组的良好习惯,例如使用 NumPy 的 ndarray 数据结构。
我知道不应该在ndarray上使用for循环。我想用标准排序算法来说明这个陈述。当然我知道如何天真地编码,这是不我想在这里做什么。
我不知道怎么用NumPy的所有机器来做,但我想我可以自己搜索。我在NumPy中找到sort
函数的reference page,其中包含以下签名
numpy.sort(a, axis=-1, kind='quicksort', order=None)
此页面链接到该函数的source code,这很有用。但后来我输了!我不明白以下几行中神奇的发生地点:
if axis is None:
a = asanyarray(a).flatten()
axis = 0
else:
a = asanyarray(a).copy(order="K")
a.sort(axis=axis, kind=kind, order=order)
return a
所以我的问题是:这段代码做了什么?