如何通过索引改变np数组中的元素,而不使用循环和if语句。例如,我们有一个数组[1,2,3,4],每隔一个元素,从0开始,我想把它变成10。得到[10,2,10,4]。
好了:
import numpy as np
arr = np.array([1,2,3,4])
for i in range(len(arr)):
if i%2==0:
arr[i]=10
print(arr)
输出:
[10 2 10 4]
Without Loop and if语句:
import numpy as np
arr = np.array([1,2,3,4])
arr[0::2] = 10
输出:
array([10, 2, 10, 4])
我已经使用Numpy的切片工作为[start:stop:step]
简单地说,您可以使用:a[::2]=10
您可以利用NumPy切片:
a = np.arange(10)
#array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])
a[::2] = 10
#array([10, 1, 10, 3, 10, 5, 10, 7, 10, 9])
可以使用[start:stop:step]
格式对数组进行切片。你可以在这里阅读更多。