Python 使用Numpy如何将给定的3D数组转换为3x3矩阵数组

Python 使用Numpy如何将给定的3D数组转换为3x3矩阵数组,python,arrays,numpy,matrix,Python,Arrays,Numpy,Matrix,我现在正在学习Numpy,我正试着把我的头绕在整形上。 我有一个3D数组,看起来这些值是随机的,但形状很重要: [[[37. 56. 56. 54. 82. 85. 68. 46. 6.]] [[96. 20. 53. 52. 79. 94. 59. 29. 40.]] [[57. 59. 38. 53. 88. 96. 61. 62. 48.]] [[32. 92. 56. 52. 74. 12. 63. 58. 81.]] [[16. 89. 24. 26. 33. 82. 80.

我现在正在学习Numpy,我正试着把我的头绕在整形上。 我有一个3D数组,看起来这些值是随机的,但形状很重要:

[[[37. 56. 56. 54. 82. 85. 68. 46.  6.]]

[[96. 20. 53. 52. 79. 94. 59. 29. 40.]]

[[57. 59. 38. 53. 88. 96. 61. 62. 48.]]

[[32. 92. 56. 52. 74. 12. 63. 58. 81.]]

[[16. 89. 24. 26. 33. 82. 80. 66. 89.]]]
我想把它变成一个3x3矩阵的数组,就像这样:

[[[37. 56. 56.]
  [54. 82. 85.]
  [68. 46.  6.]]

 [[96. 20. 53.]
  [52. 79. 94.]
  [59. 29. 40.]]

 [[57. 59. 38.]
  [53. 88. 96.]
  [61. 62. 48.]]

 [[32. 92. 56.]
  [52. 74. 12.]
  [63. 58. 81.]]

 [[16. 89. 24.]
  [26. 33. 82.]
  [80. 66. 89.]]]

如果到目前为止我对每件事都理解正确的话,这在numpy.Reforme中应该是可能的,但我无法让它工作。谁能给我指一下正确的方向吗

您需要重新调整阵列的形状。看看你现在拥有的,它是5,1,9:5个元素,在顶级维度中,每个元素都是1,9形状的数组

现在,您希望具有相同数量的顶级元素行,但在形状3、3的数组中,因此需要调用:

your_array.reshape((5, 3, 3))

在中,您可以找到有关该行为的用法示例和重要信息,例如何时返回视图以及何时返回副本。

只需重新形状?但作为什么?我想我没有正确理解重塑功能是的,这帮了我很大的忙谢谢。2D以上的一切有时仍然令人困惑,但我想我现在明白了: