如果我有一个索引数组,其中包含所有唯一的序列值,例如:
index_array = array([0, 4, 2, 5, 6, 1, 3, 7, 8])
具有相应的值数组:
value_array = array([0, 400, 200, 500 600, 100, 300, 700, 800])
是否可以按顺序循环遍历索引数组,以便
array([0, 100, 200, 300, 400, 500, 600, 700, 800])
我需要按顺序(即0、1、2、3、4…)遍历索引数组,并使用相应的值(即0、100、200、300、400)。这些值不按顺序排列的原因是因为我正在细分边,这意味着新边将添加到索引数组的末尾(使用vstack),而不是插入到索引数组的适当点。你知道吗
伪代码(如果我正在打印这些值)是这样的:
for point in sorted(index_array):
print sorted(point(value_array))
生产:
0
100
200
300
这对记忆有多敏感(我猜我需要使用努比。哪里)在循环之前重新排序是更好的做法,还是循环无序会带来性能成本?你知道吗
进近#1
获取argsort for index数组和index into values数组-
样本运行-
方法#2利用
index_array
中的所有元素都是唯一和连续的这一事实,一种更快的方法是初始化输出数组,并使用这些索引对value_array
中的值进行索引和赋值,就像这样-运行时测试-
相关问题 更多 >
编程相关推荐