从 FOR 循环创建 numpy 数组的最佳方法

新手上路,请多包涵

有没有更好的方法来使用 FOR 循环在 numpy 中创建多维数组,而不是创建列表?这是我能想到的唯一方法:

 import numpy as np

a = []
for x in range(1,6):
    for y in range(1,6):
        a.append([x,y])
a = np.array(a)
print(f'Type(a) = {type(a)}.  a = {a}')

编辑:我试着做这样的事情:

 a = np.array([range(1,6),range(1,6)])
a.shape = (5,2)
print(f'Type(a) = {type(a)}.  a = {a}')

但是,输出不一样。我确定我缺少一些基本的东西。

原文由 need_java 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.1k
1 个回答

您可以在分配相应的值之前 预先分配 数组:

 a = np.empty(shape=(25, 2), dtype=int)
for x in range(1, 6):
    for y in range(1, 6):
        index = (x-1)*5+(y-1)
        a[index] = x, y

原文由 aasoo 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题