Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/280.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
numpy中的一些数组索引_Numpy - Fatal编程技术网

numpy中的一些数组索引

numpy中的一些数组索引,numpy,Numpy,以下数组中的值等于查找索引 lookup = np.array([60, 40, 50, 60, 90]) 最大值为90 所以,结果的第一个元素是4 这样, 预期结果=数组([4,2,0,4,4,4,4,4,4,0]) 如何得到它 我试着: a = np.array([1, 2, 0, 4, 3, 2, 4, 2, 0]) b = np.array([0, 1, 2, 3, 3, 4, 1, 2, 1]) c = np.array([4, 2, 1, 4, 4,

以下数组中的值等于查找索引

    lookup = np.array([60, 40, 50, 60, 90])
最大值为90

所以,结果的第一个元素是4

这样,

预期结果=数组([4,2,0,4,4,4,4,4,4,0])

如何得到它

我试着:

    a = np.array([1, 2, 0, 4, 3, 2, 4, 2, 0])
    b = np.array([0, 1, 2, 3, 3, 4, 1, 2, 1])
    c = np.array([4, 2, 1, 4, 4, 0, 4, 4, 2])

    array       1st column elements             lookup value

    a            1        -->                   40
    b            0        -->                   60
    c            4        -->                   90
我出错了

索引器错误:只有整数、切片(:)、省略号(…)、numpy.newaxis(无)以及整数或布尔数组是有效的索引

是否要:

d = np.vstack([a, b, c])

print (d)

res = lookup[d]

res = np.max(res, axis = 0)

print (d[enumerate(lookup)])
输出:

d = np.vstack([a,b,c])

# option 1
rows = lookup[d].argmax(0)
d[rows, np.arange(d.shape[1])]

# option 2
(lookup[:,None] == lookup[d].max(0)).argmax(0)

你的代码有什么问题?您希望
d[enumerate(lookup)]
做什么?您正在寻找双argsort。不久将发布。同时,请编辑问题以包括以下内容:error@MadPhysicist您的解决方案?而不是两行:
(lookup[:,None]==lookup[d].max(0)).argmax(0)
。第一个选项更好,因为第二个选项创建布尔值的完整矩阵并查找非零元素。
array([4, 2, 0, 4, 4, 4, 4, 4, 0])