python - Numpy:使用 .max 更改二维数组中的数字
问题描述
我正在尝试使用 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
是否有任何解决方案,或者我无法使用函数更改列中的最大数字?
解决方案
np.max 的输出是一个标量值,而不是您的矩阵。你想使用 np.argmax。这将输出最大值的位置(或位置列表,如果有的话)。
您可以使用以下代码来实现所需的行为:
pos=np.argmax(Board[:,col].squeeze())
Board[pos,col]=piece
推荐阅读
- php - 在 jwt-auth 中是否可以为两个模型使用一个令牌?
- asp.net - 用户未登录时如何隐藏 CommandField?ASP.NET VB
- c++ - 如何为包含该类的非引用/指针的类定义朋友成员函数?
- django - 如何在 Django REST API 中使用自定义 APIView 保存模型实例?
- c++ - 7道题如何正确让电脑猜出用户的号码
- hibernate - CRUD 存储库不遵守 UNIQUE 约束
- laravel - Vue axios 向错误的 URL 发出 put 请求
- hibernate - Hibernate:如何在运行时动态注册 POJO 类?
- java - 仅 JavaFX TextField 可使用 css 更改焦点状态
- php - 如何将 echo 部分中的选项值存储到 php 变量中?