【发布时间】:2021-09-04 14:13:28
【问题描述】:
我正在尝试找到一种访问numpy数组元素的实现,对应于Matlab的一个特性。
假设在表格中给定一个(2,2,2) Matlab 矩阵m
m(:,:,1) = [1,2;3,4]
m(:,:,2) = [5,6;7,8]
即使这是一个 3-d 数组,Matlab 也允许以类似的方式访问它的列
m(:,1) = [1;3]
m(:,2) = [2;4]
m(:,3) = [5;7]
m(:,4) = [6;8]
我很想知道,如果 numpy 支持这样的索引,那么给定以下数组
m = array([[[1, 2],
[3, 4]],
[[5, 6],
[7, 8]]])
也可以按照上面列出的 Matlab 方式访问列。
【问题讨论】:
-
你试过什么?你有没有花时间阅读任何 numpy 文档。我相信对于任性的 MATLAB 用户来说,有一个快速表格。
-
嗨@hpaulj,到目前为止,我还没有找到这种羽毛的快速numpy实现。到目前为止,我想出的只是尝试将 numpy 数组重新排列为
[np.array([1,3]),np.array([2,4]),...]形式的列表(或数组),以便可以像 matlab 一样访问列。 -
我希望 numpy 确实有这样的羽毛。在实践中非常方便。
-
你尝试过
a[0]、a[:,0]、a[:,:,0]之类的东西吗? -
是的,这是访问 numpy 数组列的最自然的方式。但不幸的是,这不是我想要的。