9

任意のサイズの numpy.ndarray の最初と最後の次元を取得する必要があります。

shape(A) = (3,4,4,4,4,4,4,3) 私の最初のアイデアがあればresult = shape(A)[0,-1]、それはタプルでは機能しないようですが、なぜですか??

これよりもきちんとした方法はありますか

s=shape(A)
result=(s[0], s[-1])

助けてくれてありがとう

4

4 に答える 4

21

何がいけないのかわからない

(s[0], s[-1])

別のオプションは、次を使用することoperator.itemgetter()です。

from operator import itemgetter
itemgetter(0, -1)(s)

私はこれがより良いとは思わない。(インスタンスのインスタンス化に必要な時間を計算しないとitemgetter、この操作が頻繁に必要な場合に再利用できるため、わずかに高速になる可能性があります。)

于 2012-04-09T12:28:32.893 に答える
6
s = (3,4,4,4,4,4,4,3)
result = s[0], s[-1]
于 2012-04-09T12:28:40.177 に答える
2

numpy 配列を使用している場合は、それを行うことができます

s = numpy.array([3,4,4,4,4,4,4,3])
result = s[[0,-1]]

ここ[0,-1]で、最初と最後の要素のインデックスです。また、次のようなより複雑な抽出も可能です。s[2:4]

于 2012-04-09T12:36:45.023 に答える