2011-10-18 20 views
3

異なるサイズの2つの配列のpython/numpyインデックスを関連させようとしていますが、小さな配列のインデックス1をサブルーチンを通して大きな配列に渡すことはできません。配列の割り当てnumpy /:コロンに相当する

たとえば、私は2つのnumpy配列:a1a2を持っています。 a1.shape = (240,33,258)およびa2.shape = (240,40,33,258)。私はa1で指数を見つけており、これらの指数をa2に関連づけています。すなわち、index1 = numpy.where(a > n)。私は、dat1.shape = (n)dat2.shape = (n, 40)として得DAT形状と

dat1 = a1[index] 
dat2 = a2[index[0],:,index[1],index[2]] 

を使用することに興味を持ってデータを取得することができます。プログラムを高速化するには、サブルーチンでインデックスを渡したいが、コロン ':'を渡すことができないので、[index[0],:,index[1],index[2]]をサブルーチンに渡すことはできません。

私の解決策は、サブルーチンの ':'に相当する数値を渡すことだと思いますが、答えが見つかりませんでした。

助けが必要ですか?

はあなたが:を表現するためにslice(None)を使用することができるはずです非常

答えて

4

、ありがとうございました。

[index[0], slice(None), index[1], index[2]] 
+0

ありがとう、これは私が必要としていたものです。 – NPB

2

ようが言ったように、:slice(None)の省略形です。スライスタプルを作成するための便利な構文としてnp.s_[index[0],:,index[1],index[2]]を使用することもできます。

+0

ありがとうございました! – NPB

関連する問題