ruby如何获得排序的序号argsort

Python012

ruby如何获得排序的序号argsort,第1张

以后有问题可以去 stackoverflow上面搜。这里有个 提问,与你的类似。

xs = [1, 3, 2, 4]

original_indexes = xs.map.with_index.sort.map(&:last)

#=> [0, 2, 1, 3]

我解释下:

1)with_index  之后产生一个 二维数组的迭代器 [ [xs[0], 0], [xs[1], 1], [xs[2], 2] ... ]

2)sort 函数应用在二维数组中时,似乎是按照第一个元素进行排序

3)排序之后的二维数组,取出每个数组的last就是索引值,由于这时候已经排过序,所以就是希望的答案了。

Ruby,一种简单快捷的面向对象(面向对象程序设计)脚本语言,在20世纪90年代由日本人松本行弘(Yukihiro Matsumoto)开发,遵守GPL协议和Ruby License。

Ruby的变量有一定的规则,以$开头的一定是全局变量,以@开头的都是实例变量,而以@@开头的是类变量。

常数则以大写字母开头这种方法,对文本编辑器的命令补全很有帮助,如在vim下先键入$及开头字母,再敲击Ctrl+p,则可专门补全本文件以及关联文件中的全局变量,perl与php亦有此优点。

已经定义的类可以在运行时修改

Ruby是动态语言,你可以在程序中修改先前定义过的类。 也可以在某个类的实例中定义该实例特有的方法,这叫做单例方法。

使用Ruby可以写出简短而又功能强大的代码

下面的方法用来完成两个矩阵的乘积

注:ruby标准库中已包含矩阵库 Matrix