2024-04-26 14:29:38 发布
网友
我需要得到任意大小的numpy.ndarray的第一个和最后一个维度。
如果我有shape(A) = (3,4,4,4,4,4,4,3) 我的第一个想法是做result = shape(A)[0,-1],但这似乎不适用于元组,为什么不呢??
shape(A) = (3,4,4,4,4,4,4,3)
result = shape(A)[0,-1]
有没有比
s=shape(A) result=(s[0], s[-1])
谢谢你的帮助
如果您使用的是numpy数组,那么您可以这样做
s = numpy.array([3,4,4,4,4,4,4,3]) result = s[[0,-1]]
其中[0,-1]是第一个和最后一个元素的索引。它还允许更复杂的提取,例如s[2:4]
[0,-1]
s[2:4]
我不知道怎么了
(s[0], s[-1])
另一种选择是使用operator.itemgetter():
operator.itemgetter()
from operator import itemgetter itemgetter(0, -1)(s)
不过,我觉得这样也好不到哪里去。(如果不计算实例化itemgetter实例所需的时间,可能会稍微快一些,如果经常需要此操作,则可以重用该实例。)
itemgetter
s = (3,4,4,4,4,4,4,3) result = s[0], s[-1]
如果您使用的是numpy数组,那么您可以这样做
其中
[0,-1]
是第一个和最后一个元素的索引。它还允许更复杂的提取,例如s[2:4]
我不知道怎么了
另一种选择是使用
operator.itemgetter()
:不过,我觉得这样也好不到哪里去。(如果不计算实例化
itemgetter
实例所需的时间,可能会稍微快一些,如果经常需要此操作,则可以重用该实例。)相关问题 更多 >
编程相关推荐