Python 切片多维numpy数组->;不同时间实例的三维点簇

Python 切片多维numpy数组->;不同时间实例的三维点簇,python,numpy,Python,Numpy,我有一个numpy阵列,它的形状是: (30,40,100,200) 这些是不同时间(总共200)的3D点(30(x轴)x40(y轴)x100(z轴)): 仅用于可视化(这不是我的数据集,图片来自此处:) 现在,我在理解如何切片时遇到了一些问题: 如何提取一个特定时间的3D簇,即140 从提取的3D簇中,如何绘制特定y位置(即45)的2D x-z横截面 您的问题是关于数据集(数据如何分类以及如何在特定时间获得3D群集)还是关于编码 如果是关于“如何在特定时间获取集群”,则意味着您的问题与特定

我有一个numpy阵列,它的形状是:

(30,40,100,200)
这些是不同时间(总共200)的3D点(30(x轴)x40(y轴)x100(z轴)):

仅用于可视化(这不是我的数据集,图片来自此处:)

现在,我在理解如何切片时遇到了一些问题:

  • 如何提取一个特定时间的3D簇,即140
  • 从提取的3D簇中,如何绘制特定y位置(即45)的2D x-z横截面

  • 您的问题是关于数据集(数据如何分类以及如何在特定时间获得3D群集)还是关于编码

    如果是关于“如何在特定时间获取集群”,则意味着您的问题与特定的数据集有关,而Stackoverflow并不是这些问题的正确位置

    如果是关于“编码”,那么请明确定义您的问题,并向我们提供您的代码及其问题


    根据您的解释,我认为对于每个时间步骤,您都有一套完整的xyz数据,因此解决方案非常复杂。

    您应该阅读基本numpy切片:

    如何提取一个特定时间的3D簇,即140

    只需指定时间索引,即
    数据[:,:,:,140]
    。请注意,Python索引从0开始

    从提取的3D簇中,如何绘制特定y位置(即45)的2D x-z横截面


    您可以通过类似的切片操作获取二维横截面,即
    cluster[:,45,:]
    。根据打印库的不同,可以以各种方式打印<代码>imshow()来自matplotlib可能是一种可能性。

    非常感谢您的回答!现在,切片更有意义。这是一个非常酷的符号和方法来提取数据。一个问题:你是否知道,是否有可能翻转数据?我得到了x-z横截面,但现在我想知道,我怎么能得到z-x横截面。我尝试了flip numpy函数,但这只是将其从左向右翻转以交换二维数组的维度。您可以使用numpy转置操作,即as
    my_2D_slice.T
    非常感谢。这比我刚刚发现的np.swapax要简单得多。谢谢请将此类评论发布到评论部分。另外,在我看来,这个问题显示了足够的信息来回答你的问题。这个问题没有解释他使用了什么方法以及为什么它不起作用。在我看来,这个问题并不清楚。