Python:在任意维中使用冒号运算符索引数组

2024-04-26 11:15:21 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个核nd阵列。我的任务的一个简化版本是从每个轴上取一个向量。举例说明:

import numpy
x = numpy.array(range(24)).reshape((2,3,4))
x0 = x[0,0,:]
x1 = x[0,:,0]
x2 = x[:,0,0]

但是我不一定知道x的维数。因此,问题是如何将冒号:索引运算符放在变量位置。这类语法的示例如下:

n = x.ndim
ind = list(np.zeros(n))
dim = 0
ind[dim] = ':'
y = x[ind]

或者

y = indexer.index(x,ind)

对于某些模块索引器。我可以写,但我觉得这必须已经解决了,我不能是唯一一个想这样做的人。例如,在MATLAB中,可以使用subsref()函数来执行此操作。

python/numpy/other模块中是否存在这样的构造?


Tags: 模块import版本numpyrangearray向量x1