Python:从 3d numpy 数组中的 2d 数组访问保存的点

严重程度

我有一个 2d numpy array(shape(y,x)=601,1200)和一个 3d numpy array (shape(z,y,x)=137,601,1200)

在我的 2d 数组中,我保存了现在想要从 3d 数组访问z值,并将y, x其保存到新的 2d 数组中。

我尝试了这样的事情但没有成功。

levels = array2d.reshape(-1)
y = np.arange(601)
x = np.arange(1200)
newArray2d=oldArray3d[levels,y,x]

IndexError:形状不匹配:索引数组无法与形状一起广播 (721200,) (601,) (​​1200,)

我不想尝试使用循环的东西,那么有没有更快的方法?

源泉

这是您拥有的数据:

x_len = 12     # In your case, 1200
y_len = 6      # In your case, 601
z_len = 3      # In your case, 137

import numpy as np
my2d = np.random.randint(0,z_len,(y_len,x_len))
my3d = np.random.randint(0,5,(z_len,y_len,x_len))

这是构建新二维数组的一种方法:

yindices,xindices = np.indices(my2d.shape)
new2d = my3d[my2d[:], yindices, xindices]

笔记:

  1. 我们正在使用整数高级索引。
  2. 这意味着我们my3d用 3 个整数索引数组索引 3d 数组
  3. 有关整数数组索引如何工作的更多解释,请参阅我在另一个问题上的回答
  4. 在您的尝试中,没有必要使用 重塑您的 2d reshape(-1),因为我们传递的整数索引数组的形状(在任何广播之后)将成为生成的 2d 数组的形状。
  5. 此外,在您的尝试中,您的第二个和第三个索引数组需要具有相反的方向。也就是说,它们必须是 形状(y_len,1)(1, x_len)注意 的不同位置1这确保这两个索引数组将被广播

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将2D数组复制到3D数组-Python / NumPy

来自分类Dev

Python将2D numpy数组附加到3D

来自分类Dev

从 3D numpy 数组中提取 2D

来自分类Dev

使用numpy使用2D数组的值更改3D数组中的子数组

来自分类Dev

在Python和Matlab中减去3D numpy数组

来自分类Dev

从numpy中的3d数组中删除2d子数组

来自分类Dev

如何在3D Numpy数组中查找2D数组的行

来自分类Dev

用numpy中的3d数组索引2d数组

来自分类Dev

通过乘以numpy中的向量将2D数组转换为3D数组

来自分类Dev

Python 2D NumPy数组理解

来自分类Dev

Python枚举numpy中的2D数组

来自分类Dev

Python 3.4中的Numpy 2D数组

来自分类Dev

在python中对2d numpy数组进行下采样

来自分类Dev

Python:2D numpy数组中峰的正确位置?

来自分类Dev

在 Python 中将 3D 数组保存到一堆 2D 图像中

来自分类Dev

在numpy中附加3d数组

来自分类Dev

在numpy中附加3d数组

来自分类Dev

迭代Python中3d数组中包含的2d数组

来自分类Dev

在numpy中获取3D数组的2D切片的平均值

来自分类Dev

根据值将标量映射到数组:2D到3D图像处理-NumPy / Python

来自分类Dev

从python中的3D数组切片创建新的2D数组?

来自分类Dev

在Python中从现有2D数组创建3D数组

来自分类Dev

从2D numpy数组快速计算随机的3D numpy数组

来自分类Dev

将2d numpy数组连接到3d numpy数组

来自分类Dev

如何将2d numpy数组列表连接到3d numpy数组?

来自分类Dev

将多个 2d numpy 数组放入 3d numpy 数组

来自分类Dev

如何在Python / numpy中将3D数组结果保存到4D数组?

来自分类Dev

我应该如何用numpy将3d数组中的1d数组乘以2d矩阵

来自分类Dev

如何将2D numpy数组与3D数组矩阵相乘以得到3D数组?

Related 相关文章

热门标签

归档