[英]Assign different values to odd and even elements of slice of numpy array
是否可以為numpy數組切片的偶數和奇數元素分配不同的值?
將起作用的代碼示例:
a=np.zeros(100)
b=np.arange(10,50,10)
print(a)
[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. 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. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
0. 0. 0. 0.]
a[b]=10
print(a)
[ 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 10. 0. 0. 0. 0. 0. 0. 0.
0. 0. 10. 0. 0. 0. 0. 0. 0. 0. 0. 0. 10. 0. 0. 0. 0. 0.
0. 0. 0. 0. 10. 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. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]
現在,我正在嘗試為切片a [b]的偶數和奇數元素分配不同的數字
a[b][::2] = 10
a[b][1::2] = -10
但這是行不通的,初始的零數組不會修改。
簡短通知-實際上,b和a是動態生成的,因此我通常不知道它們的形狀(a和b)以及哪些索引在(b)內
您應該直接索引b
:
import numpy as np
a = np.zeros(100)
b = np.arange(10,50,10)
a[b[::2]] = 10
a[b[1::2]] = -10
print(a[b])
# [ 10. -10. 10. -10.]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.