a = [[1,2,3],
[4,5,6],
[7,8,9]]
b = [1,2,3,4,5,6,7,8,9]
c = [0,0,0,1,1,1,2,2,2]
b 是 a 的排序数组,c 是根据排序的结果找到该数在数组 a (第 0 维) 的下标。
举例:“2”在 a 数组中 dim=0 的下标是 0
现在我有 a,想得到 c,注意是对所有数进行排序
有什么好的解决办法,谢谢大家了
1
jiejiss 2020-07-05 21:35:26 +08:00
课后作业?建议先自己研究下
|
2
volvo007 2020-07-05 21:53:46 +08:00
比较笨的办法:
a = np.random.randint(0, 10, (5, 5)) # 随机生成一个 5x5 的整数矩阵 b = [(j, i//a0.shape[1]) for i,j in enumerate(a0.flatten())] # 拍扁之后生成列表,每个元素为 (数值,行数) c = [i[1] for i in sorted(b0, key=lambda x: x[0]] 就是感觉数据量大的话,这么写会很慢…… |
3
renmu123 2020-07-05 22:12:08 +08:00 via Android
对 a 做个遍历将值和下标做成一个 dict,然后拍平后再对 b 做一个遍历处理,复杂度 O(n)
|
4
Porphet OP |
6
jiejiss 2020-07-06 08:57:49 +08:00
|