给定一个 numpy 数组、一个范围和一个值,如何用范围内的值填充数组?
有没有比手动循环逐一填写更快的方法?
编辑:
myArray = np.zeros(10)
我想要什么: [0, 0, 0, 0, 1, 1, 1, 0, 0, 0]
arr = np.zeros(10)
arr[4:7] = 1
print(arr)
输出:
array([0., 0., 0., 0., 1., 1., 1., 0., 0., 0.])
对于计算范围
slice
非常有用:
ar = np.zeros(3*6).reshape((3,6))
for i in range(3):
ar[i, slice(i+1,i+3)] = 1
print(ar)
输出:
[[0. 1. 1. 0. 0. 0.]
[0. 0. 1. 1. 0. 0.]
[0. 0. 0. 1. 1. 0.]]