【问题标题】:Finding indices of elements that equal zero in the given numpy matrix在给定的numpy矩阵中查找等于零的元素的索引
【发布时间】:2019-10-29 00:14:30
【问题描述】:

我正在尝试使用 numpy 作为 tictactoe 游戏问题的一部分在 3*3 整数矩阵中查找非零元素的索引。我意识到 np.where 对于这种情况是一个不错的选择并尝试了它,我得到的输出看起来仍然不正确。你能帮我编码这部分吗?我在下面给出了我的部分代码。

输入:s,一个3*3维的整数矩阵 示例:

输出:m,可能的下一步移动列表,其中每个下一步移动是一个 (r,c) 元组,其中 r 表示行号,c 表示列号。

示例:

[代码]

m = np.where(s==0)

【问题讨论】:

  • 您能否添加足够的代码使其可以运行(或应该运行)并演示问题?如果有人可以复制/粘贴并运行它,则更容易回答。
  • 嗨 Ryan,根据我的导师的说法,整个代码应该只有两三行,其中之一是 where 语句。问题在于使用 where 语句,因为它没有给出所需的输出。
  • 这只是两到三行的解决方案,是的,但是如果你输入一个人们可以运行并快速回答的完整示例,而不是询问其他人,你更有可能得到答案人来做所有的打字。
  • 不,我的意思是这是我仅有的一行代码,它返回一个输出:(array([0, 1, 2], dtype=int64), array([1 , 2, 1], dtype=int64)) 这又不是问题中要求的“列表”类型。

标签: list numpy matrix tuples


【解决方案1】:

这里有一个快速的解决方案:

import numpy as np

s = np.matrix('0, 0, 0; 0, 1, 0; 0, 0, 0')

m = np.where(s==0)
m = list(zip(m[0], m[1]))

print(m)

s是输入矩阵,你可以看到中间的正方形被取走了,然后我们像你一样使用np.where(),产生两个数组,然后使用zip()将它们组合成元组, list() 将输出转换为有效移动的元组列表。

【讨论】:

    猜你喜欢
    • 2011-06-03
    • 1970-01-01
    • 2014-04-30
    • 1970-01-01
    • 2013-01-03
    • 1970-01-01
    • 2023-04-09
    • 2021-04-18
    相关资源
    最近更新 更多