假设我有一个 Numpy 数组,例如
rand = np.random.randn(6, 6)
我需要数组中间的四个值,因为它的轴长度是偶数。如果它是奇数,比如 5 x 5,那么就只有一个中心值。检索这四个条目的最简单/最快/最容易的方法是什么?我可以使用索引非常粗略地获得它们,但我正在寻找一种比调用一堆函数和执行一堆计算更快的方法。
例如,考虑以下内容:
array([[ 0.25659355, -0.75456113, 0.39467396, 0.50805361],
[-0.77218172, 1.00016061, -0.70389486, 1.67632146],
[-0.41106158, -0.63757421, 1.70390504, -0.79073362],
[-0.2016959 , 0.55316318, -1.55280823, 0.45740193]])
我想要以下内容:
array([[1.00016061, -0.70389486],
[-0.63757421, 1.70390504]])
但不仅仅是 4 x 4 数组 - 如果它是偶数,我想要中间的四个元素,如上所述。
最佳答案
这样的事情是不是太复杂了?
def get_middle(arr):
n = arr.shape[0] / 2.0
n_int = int(n)
if n % 2 == 1:
return arr[[n_int], [n_int]]
else:
return arr[n_int:n_int + 2, n_int:n_int + 2]
关于python - 访问 Numpy 数组中中间四个元素的最快方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36318806/