如何从python中的np.where()获取nd数组?

时间:2016-11-01 13:42:15

标签: python arrays python-3.x numpy

我的问题有不同的移动物体。我们在不同的时间范围内计算这些物体之间的距离。

我有一个 A 数组(a,b),用于存储距离。 a是fames的数量,b是计算此距离的坐标数。

我有一个列表 L ,其中包含这些对象的名称。它的长度为b。

我想找到距离值为1的位置。然后我想在列表 L (具有相同的索引)中找到该索引的名称。我写下面的

A=[[nd array]]
L=[list of names]
list_to_array=np.array(L)
array_of_names_meeting_criteria=list_to_array[np.where(A==1)[1]]

问题是我没有得到每帧的名字。我希望这个数组是按帧分割的,所以我得到(a,x)其中a是帧数,每帧我有x个名称

示例案例

A=np.array[[1,2,2,6],[3,4,5,1],[3,1,17,4],[2,3,1,5]]
L=[('cat','dog'),('lion','elephant'),('man','women'),('fish','shark')]
llist_to_array=np.array(L)
array_of_names_meeting_criteria=list_to_array[np.where(A==1)[1]]

我应该得到以下内容: -

[['cat','dog'],['fish','shark'],['lion','elephant'],['man','women']]

1 个答案:

答案 0 :(得分:0)

我刚刚对您的代码进行了一些小修改,结果如下:

A = np.array([[1,2,2,6],[3,4,5,1],[3,1,17,4],[2,3,1,5]])
L = [('cat','dog'),('lion','elephant'),('man','women'),('fish','shark')]
list_to_array = np.array(L)
array_of_names_meeting_criteria = list_to_array[np.where(A==1)[1]]