【发布时间】:2016-03-08 07:58:27
【问题描述】:
我正在尝试对 3D numpy 数组进行一些索引。
基本上我有一个数组phi,其形状为(F,A,D);例如(5, 3, 7)。生成,例如如下:
F=5; A=3; D=7; phi = np.random.random((F,A,D))
我的目标是能够使用[[0,1,2],[5,5,6]] 等二维数组对A 和D 进行索引,这意味着将在第三维中以0 索引的值作为@ 中的第一个位置987654328@,在第三维中以 1 为索引的值是 A 的第二个位置,依此类推。结果的形状应为(F,A,2) 或(F,2,A)。
这相当于手动循环“索引器数组”的所有值,例如:
phi[:,0,0]; phi[:,1,1]; phi[:,2,2]
phi[:,0,5]; phi[:,1,5]; phi[:,2,6]
直觉上我会做类似phi[:,:,[[0,1,2],[3,3,3]]]的事情,但它的形状最终是(5, 3, 2, 3)。
关于如何获得正确结果的任何想法?
【问题讨论】:
-
你能说得更具体点吗?举一个简单的例子,告诉我们输出应该是什么样子
-
@plonser:好的,添加编辑...
-
@plonser:添加外部循环扩展作为示例
-
你预期的形状是不是错字?考虑到您的预期结果,不应该是
(F,2,A)吗?
标签: python arrays numpy multidimensional-array indexing