Python 获取numpy数组中沿轴的最后一个元素

Python 获取numpy数组中沿轴的最后一个元素,python,arrays,numpy,numpy-ndarray,numpy-slicing,Python,Arrays,Numpy,Numpy Ndarray,Numpy Slicing,我需要一个函数来获取numpy数组中沿轴的最后一个元素 例如,如果我有一个数组 a = np.array([1, 2, 3]) 这个函数应该像 get_last_elements(a, axis=0) >>> [3] get_last_elements(a, axis=1) >>> [1, 2, 3] 此函数也需要用于多维数组: b = np.array([[1, 2], [3, 4]]) get_last_elements(

我需要一个函数来获取numpy数组中沿轴的最后一个元素

例如,如果我有一个数组

a = np.array([1, 2, 3])
这个函数应该像

get_last_elements(a, axis=0)
>>> [3]
get_last_elements(a, axis=1)
>>> [1, 2, 3]
此函数也需要用于多维数组:

b = np.array([[1, 2],
              [3, 4]])

get_last_elements(b, axis=0)
>>> [[2],
     [4]]
get_last_elements(b, axis=1)
>>> [3, 4]

有谁有好主意来实现它吗?

你可以使用
np。用
来实现:

def get_last_elements(a, axis=0):
  shape = list(a.shape)
  shape[axis] = 1
  return np.take(a,-1,axis=axis).reshape(tuple(shape))
输出:

print(get_last_elements(b, axis=0))
[[3 4]]

print(get_last_elements(b, axis=1))
[[2]
 [4]]

您确定要
获取最后一个元素(a,axis=1)
用于第一个示例吗?由于
a
的形状是
(3,)
,而不是
(1,3)
。请发布您的尝试。是的。我想要那个。但是,也许我可以用X=np将一维数组转换为二维数组。重塑(X,(1,X.size))或其他简单的东西。
np.take
可能有用<代码>np。处理1d输入时,至少\u 2d
可能有帮助。