使用附加函数创建2D numpy数组

问题描述 投票:0回答:2

我想在python中创建尺寸为Nx2的2D numpy数组。我想通过使用2个“ for”循环来创建它。我可以使用以下代码在Matlab中轻松构建此数组

matrix=[];

for i=1:3
    for j=1:4
        temp=[i,j];
        matrix=[matrix;temp];
    end
end

我已经尝试过很多次了,但是都失败了。通常,我得到的错误与运行“ for”循环时不匹配的数组大小有关。

代码的输出是

matrix =

 1     1
 1     2
 1     3
 1     4
 2     1
 2     2
 2     3
 2     4
 3     1
 3     2
 3     3
 3     4

谢谢您的帮助。

python arrays numpy for-loop append
2个回答
0
投票
matrix= []

for i in range(1,4):
    for j in range(1,5):
        temp= [i,j]
        matrix.append(temp)

最后,您可以使用以下方法将列表列表转换为numpy数组matrix = np.array(matrix)


0
投票

您确实不需要为此在MATLAB或numpy中循环。在两种语言中,与向量化代码时运行的后台循环相比,显式循环往往会比较慢。两种语言都有网状网格功能。在numpy中,您可以执行以下操作:

ii = np.arange(3) + 1
jj = np.arange(4) + 1
j, i = np.meshgrid(jj, ii)
np.stack((i.ravel(), j.ravel()), axis=1)
© www.soinside.com 2019 - 2024. All rights reserved.