簡體   English   中英

在 Python 中創建數組 N x 1?

[英]Creating arrays N x 1 in Python?

在 MATLAB 中,人們會簡單地說

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

它創建了一個大小為 LX 1 的數組。

我如何在 Python 中創建它?

我試過:

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

哪個不起作用。

干得好:

x.reshape((-1,1))

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 的'更強大、更通用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM