簡體   English   中英

創建2D numpy數組的最快方法,該數組從0開始,在行中增加1,並在列中繼續?

[英]Fastest way to create 2D numpy array which starts at 0, and increases by 1 across the rows, and continues into the columns?

第一行的第一個元素應以0開頭,並在行中以1遞增,對於下一列繼續以1遞增,依此類推。

這是我正在尋找的例子

array([[0, 1, 2, 3],
       [4, 5, 6, 7],
       [8, 9, 10, 11],
       ...,
       [5231,  5232, 5233,  5234],
       [5235,  5236, 5237, 5238]], dtype=int32)

該解決方案應能夠適用於任何指定的2D尺寸,例如

array([[0, 1, 2, ..., 78, 79, 80],
       [81, 82,  83, ..., 158, 159, 160],
       ...,
       [2253, 2254,  2255, ..., 2453, 2454, 2455]], dtype=int32)

這些示例在數值上並不准確,我只是想證明它從0開始,在各行中以1遞增,然后繼續到下一行。

我當時在考慮使用for循環分別填充每個值,但是我不確定這是否是最快的解決方案,還是最pythonic和編程上最優雅的解決方案。

您可以使用

np.arange(nrows*ncols).reshape(nrows,ncols)

順便說一下,這就是在numpy帖子中創建90%的示例2D數組的方式。

創建一個1D數組,使用所需的值初始化該數組,然后使用顛簸的整形將其轉換為2D數組。

暫無
暫無

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

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