首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Numpy:使用.max更改二维数组中的数字

Numpy:使用.max更改二维数组中的数字
EN

Stack Overflow用户
提问于 2021-10-09 15:49:16
回答 1查看 44关注 0票数 0

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

代码语言:javascript
复制
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函数将数字替换为一个片段时,该函数会给出一个错误:

代码语言:javascript
复制
    np.max(Board[row][col]) = piece        
    ^
SyntaxError: cannot assign to function call

有没有解决这个问题的办法,或者我不能用函数改变列中的最大数字?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-10-09 15:57:11

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

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

代码语言:javascript
复制
pos=np.argmax(Board[:,col].squeeze())
Board[pos,col]=piece
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69508316

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档