簡體   English   中英

為numpy數組的slice的奇數和偶數元素分配不同的值

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM