0

[1,4,10] のような数値を含むリスト A が python にあります。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

のように行列を意味する場合は、スライスを使用してm[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 に答える