【问题标题】:Python loops in 2d-array二维数组中的 Python 循环
【发布时间】:2018-05-24 03:11:00
【问题描述】:

所以我有两个一维数组

x = [1,2,3,4,5]
y = [5,6,7,8,9]

和一个零二维数组

2d_array=np.zeros((5, 5))

我有两个方程

R = 5*y+1
S = R + 5*x

我想创建一个循环,从x(y in R) 的不同值中找到S 的所有可能答案,并将它们存储在二维零数组中。

谢谢!

【问题讨论】:

  • 你最近问过同样的问题吗?
  • 欢迎来到 Stack Overflow! StackOverflow 不是免费的编码服务。所以希望你try to solve your own problem first。请更新您的问题以在minimal reproducible example 中显示您已经尝试过的内容。如需更多信息,请参阅How to Ask,并拨打tour :)
  • 使用 itertools.product 生成所有可能的 x/y 组合值。

标签: python arrays loops numpy


【解决方案1】:

遍历两个二维数组的最有效方法是使用两个 for 循环。

listX = [1,2,3,4,5]

listY = [5,6,7,8,9]

zeroArray = []

for x in listX:
    for y in listY:
        R = 5 * y + 1
        S = R + 5 * x
        tempList = [R, S]
        zeroArray.append(tempList)

更新到第二个问题:

寻找最大 S 值并将数组放入 5x5 的新代码:

listX = [1,2,3,4,5]

listY = [5,6,7,8,9]

zeroArray = []

highestValue = (5 * listY[0] + 1) + 5 * listX[0]

for x in listX:
    tempList = []
    for y in listY:
        R = 5 * y + 1
        S = R + 5 * x
        tempList.append(S)
        if S > highestValue:
            highestValue = S
    zeroArray.append(tempList)

这应该可行。

【讨论】:

  • 太好了,还有一件事,我只需要数组中的 S 所以我将这个 tempList = [R, S] 更改为 tempList = [S],现在我想使它成为一个 5x5 数组, 我怎样才能做到这一点 ?然后我怎样才能找到该数组中的最大数,例如,如果它是第一个,它将是 i0 和 j0。非常感谢你:)
  • 听起来不错!如果你只想要 S,你可以只使用 zeroArray.append(S),因为这样会更干净而且没有任何额外的 3d 列表,但如果你需要它来做某事,请保持这种方式
  • 但是现在我想把它做成一个 5x5 数组,我该怎么做呢?然后我怎样才能找到该数组中的最大数,例如,如果它是第一个,它将是 i0 和 j0。非常感谢你:)
  • 你想把什么变成 5x5 数组?而对于最大数量,它是最高的 S 值吗?
  • ZeroArray,是的,我的意思是最高的 S 值。谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-06-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多