【发布时间】:2018-08-10 04:08:20
【问题描述】:
我正在尝试提取 NumPy 二维数组的四个角元素:
import numpy as np
data = np.arange(16).reshape((4, -1))
#array([[ 0, 1, 2, 3],
# [ 4, 5, 6, 7],
# [ 8, 9, 10, 11],
# [12, 13, 14, 15]])
预期的输出是[[0,3],[12,15]] 或[0,3,12,15](随便)。真正的 2D fancy 索引只提供主对角线的末端:
data[[0,-1],[0,-1]]
#array([ 0, 15])
伪二维 fancy 索引(首先按行,然后按列)提供了正确的答案,但看起来很尴尬:
data[[0,-1]][:,[0,-1]]
#array([[ 0, 3],
# [12, 15]])
有没有办法使用真正的fancy 索引,例如data[XXX,YYY],其中XXX 和YYY 是列表/数组/切片,来提取所有四个角?
【问题讨论】:
标签: python python-3.x numpy indexing