0

我在 python 中有一个列表 A,其中包含一些像 [1,4 ,10] 这样的数字。我有另一个矩阵,由 10 列和一些行组成,第一列是数字,如 [1 1 1 2 2 2 2 2 3 3 4 4 4 4 5 .... 等等。现在我想从另一个数组中检索这些行,该数组的第一列由列表 A 中的数字组成。我怎样才能在 python 中做到这一点?

4

2 回答 2

1

这个怎么样:

target_list = [1, 4, 10]

a = np.array([[1,0],
              [5,0],
              [10,0],
              [4,0],
              [1,0],
              [7,0]])

first_col = a[:,0]

# create a boolean array
to_retrieve = np.in1d(first_col, target_list)

result = a[to_retrieve]

结果:

>>> result # retrieved rows whose first column elements are in the target list
array([[ 1,  0],
       [10,  0],
       [ 4,  0],
       [ 1,  0]])
于 2013-10-21T02:50:02.570 回答
0

如果您的意思是矩阵,那么您可以使用slicem[x + y * width]检索行。X

例如:

row_index = 5
column_count = 10
start = row_index * column_count
end = start + column_count
row = m[start:end]

从而做你想做的事

rows = []
for index in list_A:
    rows.append(list_A[index * 10:index * 10 + 10])

如果您正在谈论检索列,那么就像这样

columns = []
for index in list_A:
    columns.append(list_A[index:len(list_A):10])
于 2013-10-21T00:32:55.850 回答