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