[英]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.