我需要獲取任意大小的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])
感謝所有幫助的更合適的方法
我需要獲取任意大小的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])
感謝所有幫助的更合適的方法
我不知道什麼是錯的。你對
(s[0], s[-1])
不同的選項是使用operator.itemgetter()
:
from operator import itemgetter
itemgetter(0, -1)(s)
雖然我不認爲這有什麼好處。 (這可能是,如果你不指望實例化itemgetter
實例所需的時間,這可如果需要經常這種操作重複使用稍快一些。)
如果您使用numpy的陣列,則可能這樣做
s = numpy.array([3,4,4,4,4,4,4,3])
result = s[[0,-1]]
其中[0,-1]
是第一個和最後一個元素的索引。它也允許更復雜的提取,如s[2:4]
是的,但形狀不返回np.array。 奇怪的是,[2:4]對於一個元組甚至是可能的,但是[0,-1]不是 – 2012-04-09 14:47:15
我只是想知道,因爲我還沒有處理過多元組到目前爲止。 謝謝,我會盡快接受你的回答(約8分鐘:)) – 2012-04-09 12:32:52