我想在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
谢谢您的帮助。
matrix= []
for i in range(1,4):
for j in range(1,5):
temp= [i,j]
matrix.append(temp)
最后,您可以使用以下方法将列表列表转换为numpy数组matrix = np.array(matrix)
您确实不需要为此在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)