如何在Numpy数组中按坐标(x,y)调整指定元素的位置
Numpy数组按坐标修改绿圈位置的实现方法
核心逻辑非常简单:先清空原有绿圈的位置,再给目标坐标赋值绿圈即可,注意numpy数组采用先行后列的索引规则,和你代码里获取的x(行索引)、y(列索引)对应。
具体步骤
- 先通过
np.where拿到当前绿圈的坐标,将原位置的元素重置为黑块⬛ - 自定义目标坐标,直接给目标坐标位置的元素赋值为绿圈
🟢
完整可运行代码
import numpy as np matrix = np.array( [ ['🟢', '⬛', '⬛', '⬛'], ['⬛', '⬛', '⬛', '⬛'], ['⬛', '⬛', '⬛', '⬛'], ['⬛', '⬛', '⬛', '⬛'] ] ) # 获取原有绿圈坐标 old_x, old_y = tuple(zip(*np.where(matrix=='🟢')))[0] # 清空原位置 matrix[old_x, old_y] = '⬛' # 自定义要移动到的目标坐标,示例为移动到第3行第4列(索引从0开始计数) target_x, target_y = 2, 3 # 赋值新位置 matrix[target_x, target_y] = '🟢' # 输出结果 print("\n".join("".join(i for i in row) for row in matrix))
注意事项
numpy数组的索引默认从0开始计数,如果你使用的坐标规则是从1开始计数,需要给目标坐标的x、y各减1之后再赋值,避免索引越界或者位置错误。
内容的提问来源于stack exchange,提问作者RAINGM
相关产品推荐
相关产品推荐

