-1

前者の最初、中間、および最後にユーザーが希望するサイズの一部のみを含む新しい配列を作成したい 1 次元配列があります。

import numpy
a = range(10)
a
array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])

b を次のようにしたい:

b
array([0, 1, 2, 5, 6, 7, 9])

b が a[:3]、a[5:6]、および a[9] の連結で構成されていると仮定します。もちろん、np.concatenate などを使用することもできますが、スライシング メソッドなどを 1 行で使用する方法はありますか?

4

2 に答える 2

1

1 つの方法は、配列にインデックスを付けたいインデックスの配列を作成することです。

import numpy
a = numpy.arange(10)
i = numpy.array([0, 1, 2, 5, 6, 7, 9])  # An array containing the indices you want to extract
print a[i]  # Index the array based on the indices you selected

出力

[0 1 2 5 6 7 9]
于 2013-10-20T12:41:35.833 に答える
0

私は解決策を見つけました:

import numpy as np
a = range(10)
b = np.hstack([a[:3], a[5:6], a[9])
b
array([0, 1, 2, 5, 6, 7, 9])

しかし、スライスはそのような動きを可能にしますか?

于 2013-10-20T12:57:36.250 に答える