python-3.x - 简化 numpy 表达式

标签 python-3.x numpy multidimensional-array

我怎样才能简化这个:

import numpy as np
ex = np.arange(27).reshape(3, 3, 3)

def get_plane(axe, index):
    return ex.swapaxes(axe, 0)[index]  # is there a better way ? 

我找不到 numpy 函数来获取高维数组中的平面,有吗?

编辑

ex.take(index, axis=axe)方法很棒,但它复制数组而不是提供 View ,这是我最初想要的。

那么索引(不复制)第 n 维数组以获取其二维切片(带有索引和轴)的最短方法是什么?

最佳答案

灵感来自this answer ,你可以这样做:

def get_plane(axe, index):
    slices = [slice(None)]*len(ex.shape)
    slices[axe]=index
    return ex[tuple(slices)]

get_plane(1,1)

输出:

array([[ 3,  4,  5],
       [12, 13, 14],
       [21, 22, 23]])

关于python-3.x - 简化 numpy 表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62222194/

相关文章:

c++ - 从 MATLAB 到 C++ 的多维数组

python - 如何指定一个属性必须是一个(比方说)整数列表,而不仅仅是一个列表?

python - 使机器人对最后一条消息使用react或对带有消息 ID 的消息作出 react

python - 将函数映射到 Scipy/numpy 矩阵的所有列

python - 将文本文件中的 block 读入二维数组

javascript - 遍历二维数组并将数据提取到新数组

python - 可以装饰类吗?

python - Setuptools 循环 dependency_links

python - 如何在没有警告的情况下写入结构化数组中的单个字段

arrays - angular2 bool 数组