Python 如何设置二维数组中某些元素的值,这些元素的位置在带有numpy的列表中?

Python 如何设置二维数组中某些元素的值,这些元素的位置在带有numpy的列表中?,python,arrays,python-3.x,numpy,Python,Arrays,Python 3.x,Numpy,给定一个2D数组(用0s初始化),我想 将某些数组元素的值从0更改为1,其中 要更改的元素的基于1的位置在列表编号中给出,如[2,5,10,50] 例如,给定array=np.zero([5,10])和numbers=[2,5,10,50]我希望print(array)的输出为: [[01101001] [0 0 0 0 0 0 0 0 0 0] [0 0 0 0 0 0 0 0 0 0] [0 0 0 0 0 0 0 0 0 0] [0 0 0 0 0 0 0 0 0 1]] 我的代码

给定一个2D数组(用
0
s初始化),我想

  • 将某些数组元素的值从0更改为1,其中
  • 要更改的元素的基于1的位置在列表
    编号
    中给出,如
    [2,5,10,50]
例如,给定
array=np.zero([5,10])
numbers=[2,5,10,50]
我希望
print(array)
的输出为:

[[01101001]
[0 0 0 0 0 0 0 0 0 0]
[0 0 0 0 0 0 0 0 0 0]
[0 0 0 0 0 0 0 0 0 0]
[0 0 0 0 0 0 0 0 0 1]] 
我的代码:

import numpy as np

array = np.zeros([5,10],dtype=int).reshape(-1,1)

numbers = [2,5,10]

def draw_ships(array, numbers):
    numbers = np.sort(numbers)
    for i in numbers:
        array[i] = 1

draw_ships(array, numbers)
print(array)
没有给我预期的输出,但是

[[0]
[0]
[1]
[0]
[0]
[1]
[0]
#更多输出
[0]
[0]] 
我该怎么做

import numpy as np

array = np.zeros((5, 10), dtype=int)
numbers = [2, 5, 10, 50]

array.flat[np.array(numbers) - 1] = 1

print(array)
实现您想要的内容并打印出来

[[01101001]
[0 0 0 0 0 0 0 0 0 0]
[0 0 0 0 0 0 0 0 0 0]
[0 0 0 0 0 0 0 0 0 0]
[0 0 0 0 0 0 0 0 0 1]]

请说明预期的输出。什么是示例性输入?是否只修改第一行?请提出问题,而不是评论。如果2D阵列将出现堆栈溢出,请说明所需的输入。在这里复习完你的问题后,我建议参加,阅读中的主题,然后阅读。