【问题标题】:How to form multi-dimentional array from several 2-d arrays in NumPy / PyTables?如何从 NumPy / PyTables 中的几个二维数组形成多维数组?
【发布时间】:2012-05-25 19:00:57
【问题描述】:

我在一个 hdf5 文件下有几个二维数组,如何在 PyTables 中将它们合并为一个多维数组?即,文件现在是数组 A、数组 yB、数组 C,我希望它们是数组 X 具有第 1 维 A、第 2 维 B、第 3 维 C

【问题讨论】:

  • 合并是什么意思?

标签: multidimensional-array numpy hdf5 pytables


【解决方案1】:

我想你正在寻找numpy.dstack()

来自docs

Stack arrays in sequence depth wise (along third axis).
Takes a sequence of arrays and stack them along the third axis to make a single array.
All of them must have the same shape along all but the third axis.

希望这会有所帮助。爱 Numpy!

【讨论】:

  • 另外,你的问题不太正确。结果数组将具有 3 个维度。每个数组将与该第三维的索引之一相关联。因此,当你想恢复 arrayB 时,你可以这样切片:arrayA_again = multiarray[:,:,0]
  • 对不起,我之前的评论搞错了:当你想恢复arrayA(不是B)时,你像这样切片:arrayA_again = multiarray[:,:,0]arrayD_again = multiarray[:,:,3],等等。另外,数量DIMENSIONS(ndims 用于 numpy)将是三个:高度、宽度和深度,不要与数组的形状混淆,这可能是您想要的长度。如果您有 200 行和 300 列的数组,并且将其中的 20 个堆叠起来,您将得到一个形状 = (200, 300, 20) 的三维数组。如果你想要最后一个,例如,你可以切片multiarray[:,:,-1]
猜你喜欢
  • 2012-02-09
  • 1970-01-01
  • 2015-04-22
  • 2020-11-13
  • 2023-01-04
  • 1970-01-01
  • 1970-01-01
  • 2018-06-15
  • 2012-04-10
相关资源
最近更新 更多