繁体   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