Python 切片多维numpy数组->;不同时间实例的三维点簇
我有一个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群集)还是关于编码 如果是关于“如何在特定时间获取集群”,则意味着您的问题与特定
(30,40,100,200)
这些是不同时间(总共200)的3D点(30(x轴)x40(y轴)x100(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转置操作,即asmy_2D_slice.T
非常感谢。这比我刚刚发现的np.swapax要简单得多。谢谢请将此类评论发布到评论部分。另外,在我看来,这个问题显示了足够的信息来回答你的问题。这个问题没有解释他使用了什么方法以及为什么它不起作用。在我看来,这个问题并不清楚。