【问题标题】:Making a 0 to nxn matrix and reshape it to pairs制作一个 0 到 nxn 矩阵并将其重塑为对
【发布时间】:2019-10-09 08:54:43
【问题描述】:

也许我错了,我不知道如何搜索它。

我需要得到一个配对列表

(0,0) (0,1) (0,2) ... (0,999) ... (999,999)

将这些值放入神经网络并得到结果 - 只是一个长度为 (999*999) 的向量

然后我可以将其重塑为 (999,999) 并获得输出图。

所以,天真的方法是使用

for i in range(0, 999):
    for j in range(0, 999):
        list.add(predict(i,j))

但是不能批量使用

另一种幼稚的方法是

numbers=[]
for i in range(0, 999):
    for j in range(0, 999):
        numbers.append([i,j])

这可以分批工作。

还有更优雅的解决方案吗?

【问题讨论】:

  • 究竟需要什么?此类元组的单个 (1-d) 列表/数组 (0,1) (0,2) ... (0,999) ... (999,999) ?如果您可以按照要求的确切格式发布示例输出,那将有所帮助。
  • @Parth 是的,你是对的
  • 你想包含(0,0), (1,0), (2,0)等吗?例如你没有给(0,0)
  • @Parth 是的,它们也必须包括在内

标签: python arrays list numpy reshape


【解决方案1】:

试试这个:

target_list = np.array([(i,j) for i in range(1000) for j in range(1000)])

print(target_list) 将以 numpy 数组格式提供所需的列表:

[[  0   0]
 [  0   1]
 [  0   2]
 ...
 [999 997]
 [999 998]
 [999 999]]

【讨论】:

  • 非常感谢!抱歉,我无法提高帖子分数
  • @fisi 欢迎。不用担心。很高兴能提供帮助。
  • 如果有人对性能感兴趣,在我的电脑上,这种方法比在循环中填充列表快 10%(~800ms vs ~900ms)。如果我们不创建np.array,大约需要300ms
猜你喜欢
  • 2019-06-22
  • 2011-01-16
  • 2020-03-19
  • 2021-03-07
  • 1970-01-01
  • 2013-05-17
  • 2023-01-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多