【问题标题】:Creating arrays N x 1 in Python?在 Python 中创建数组 N x 1?
【发布时间】:2021-10-16 13:59:45
【问题描述】:

在 MATLAB 中,人们会简单地说

L = 2^8
x = (-L/2:L/2-1)';

这会创建一个大小为 L X 1 的数组。

如何在 Python 中创建它?

我试过了:

L = 2**8
x = np.arange(-L/2.0,L/ 2.0)

这不起作用。

【问题讨论】:

标签: python arrays numpy


【解决方案1】:

给你:

x.reshape((-1,1))

【讨论】:

    【解决方案2】:

    MATLAB 代码生成一个 (1,n) 大小的矩阵,该矩阵被转置为 (n,1)

    >> 2:5
    ans =
    
       2   3   4   5
    
    >> (2:5)'
    ans =
    
       2
       3
       4
       5
    

    MATLAB 矩阵始终为 2d(或更高)。 numpy 数组可以是 1d 甚至是 0d。

    https://numpy.org/doc/stable/user/numpy-for-matlab-users.html

    numpy:

    arange 产生一维数组:

    In [165]: np.arange(2,5)
    Out[165]: array([2, 3, 4])
    In [166]: _.shape
    Out[166]: (3,)
    

    向数组添加尾随维度的方法有多种:

    In [167]: np.arange(2,5)[:,None]
    Out[167]: 
    array([[2],
           [3],
           [4]])
    In [168]: np.arange(2,5).reshape(3,1)
    Out[168]: 
    array([[2],
           [3],
           [4]])
     
    

    numpy 有一个转置,但它对一维数组的行为并不是人们对二维数组的期望。它实际上比 MATLAB 的' 更强大、更通用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-04
      • 2021-07-20
      • 1970-01-01
      • 2014-02-08
      相关资源
      最近更新 更多