如何在nd数组中的索引处正确定位值并将其保存为python中的列表?

时间:2016-10-31 15:55:54

标签: python arrays python-3.x multidimensional-array

我有一个名为L的列表。它有C个元素。

我有一个名为X的数组.X有布尔数据(0或1)。它的尺寸为(20,C)。有20个列表,每个列表都有C个元素

我想在X中找到值为1的每个索引。然后我希望List L中此索引处的值,最后将该值从L存储在另一个nd数组中。 我写下面的代码

emptylist=[]

for index,value in np.ndenumerate(X): #this index is a tuple like (0,3)

tuple_to_list=list(i)
if value == 1:

   emptylist.append (L[tuple_to_list[1]])  #error 

程序不会停止运行。你能指导我改进这段代码吗?

1 个答案:

答案 0 :(得分:0)

最后一行应该是:

empylist.append(L[index[0]])

我不知道

需要你的tuple_to_list

仅使用数组的解决方案如下:

L = list(np.random.rand(20)) # gives a List of radom values (to be compatible to the question)
La = np.array(L)
X = randint(0,5,(20,101)) # make an array having values from 0...4
emptylist = La[np.where(X==1)[0]] #gives those rows of L where rows of X contain 1

虽然名称为空不再合适。