给定numpy
数组:
a = arange(10,20,1)
我经常需要一个包含数组的第一个和最后一个元素的元组:
w = a[0],a[-1]
是否有一个方便的python切片快捷方式可以在a
的单个引用中执行此操作?
答案 0 :(得分:5)
是的,使用Numpy的高级索引:
w = a[[0, -1]]
答案 1 :(得分:2)
也许你想要:
a[::len(a)-1]
这告诉它从开头到结尾给你一个切片,“step”值比数组的长度小1(所以取第一个值,然后取一个len(a)-1
索引以后,这是最后一个值。)
似乎在numpy中运作良好:
>>> import numpy
>>> a = numpy.arange(10, 20, 1)
>>> a
array([10, 11, 12, 13, 14, 15, 16, 17, 18, 19])
>>> a[::len(a)-1]
array([10, 19])
>>> tuple(a[::len(a)-1])
(10, 19)
答案 2 :(得分:2)
你可以轻松制作一个
>>> from operator import itemgetter
>>> from numpy import arange
>>> a = arange(10,20,1)
>>> first_and_last = itemgetter(0, -1)
>>> first_and_last(a)
(10, 19)