【问题标题】:How to reshape 3D numpy array <10,3,2> to 4D array <10,1,3,2>?如何将 3D numpy 数组 <10,3,2> 重塑为 4D 数组 <10,1,3,2>?
【发布时间】:2021-10-14 22:04:06
【问题描述】:

我有以下 numpy 数组:

import numpy as np

np.ones((10, 3, 2))

并且我需要将其重塑为&lt;10,1,3,2&gt;

我该怎么做?

【问题讨论】:

    标签: python arrays numpy reshape


    【解决方案1】:

    这个怎么样:

    np.ones((10, 3, 2)).reshape([10,1,3,2])
    

    【讨论】:

      【解决方案2】:
      x = np.ones((10, 3, 2))
      # in place
      x.shape = (10,1,3,2)
      
      # new view
      x.reshape((10,1,3,2))
      
      # Add new axis
      x[:, np.newaxis, :, :]
      

      【讨论】:

        【解决方案3】:

        就像其他人提到的,你可以.reshape它。另一种方法是像这样使用np.newaxisnp.expand_dims

        arr = np.ones((10, 3, 2))
        
        arr1 = arr[:, np.newaxis, ...]
        print(arr1.shape)  # (10, 1, 3, 2)
        
        arr2 = np.expand_dims(arr, 1)
        print(arr2.shape)  # (10, 1, 3, 2)
        
        # check if the two arrays are equal
        print(np.array_equal(arr1, arr2))  # True
        

        【讨论】:

          猜你喜欢
          • 2021-08-06
          • 2018-03-17
          • 1970-01-01
          • 1970-01-01
          • 2017-09-18
          • 2020-04-22
          • 2017-11-11
          • 2016-05-22
          • 1970-01-01
          相关资源
          最近更新 更多