【问题标题】:Numpy: using .max to change a number in a 2D arrayNumpy:使用 .max 更改二维数组中的数字
【发布时间】:2021-10-09 15:49:16
【问题描述】:

我正在尝试使用 NumPy 的 2D 数组创建一个简单的 connect-4 游戏,其想法是当玩家选择一列时,它将用一块替换该列中的最大数字

import numpy as np

R_count = 6
C_count = 7

M1 = ([[0,0,0,0,0,0,0],[1,1,1,1,1,1,1],[2,2,2,2,2,2,2],[3,3,3,3,3,3,3],[4,4,4,4,4,4,4],[5,5,5,5,5,5,5]])

def M2():
    mymatrix = np.array(M1)
    return mymatrix
Board = M2()

def drop_piece(Board,row,col,piece):
    np.max(Board[row][col]) = piece

但是当我使用np.max函数将数字替换为一块时,函数会报错:

    np.max(Board[row][col]) = piece        
    ^
SyntaxError: cannot assign to function call

是否有任何解决方案,或者我无法使用函数更改列中的最大数字?

【问题讨论】:

    标签: python numpy multidimensional-array


    【解决方案1】:

    np.max 的输出是一个标量值,而不是您的矩阵。你想使用 np.argmax。这将输出最大值的位置(或位置列表,如果有的话)。

    您可以使用以下代码来实现所需的行为:

    pos=np.argmax(Board[:,col].squeeze())
    Board[pos,col]=piece
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-07-30
      • 1970-01-01
      • 2014-08-10
      • 1970-01-01
      • 2021-12-06
      • 1970-01-01
      • 1970-01-01
      • 2012-08-29
      相关资源
      最近更新 更多