[英]extracting ith and ith+1 from random 2D numpy array
我有一個由
[1,3,8,6,0,2,4,5,9,7]
此數組是由10個數字0-9組成的隨機數組。
我也有一個2D numpy數組,一個帶有數值的10X10 2D numpy數組。
我想使用我的1D numpy數組(如上)通過遍歷1D數組來訪問2D numpy數組中的特定實例。
。
我想將這些值加到我的2D numpy數組中。
到目前為止,我有:array = [1,3,8,6,0,2,4,5,9,7]
values =0
for i in range (0, len(array)): #this is 10
a=array2[i,array[i]+1] #array2 is the 2D numpy array with the values
values=values+a
這在某種程度上有效,但是如何獲取最后一個元素到第一個元素呢? 即找到[7,1]
您可以進行兩次切片以使其起作用。
values = 0
for i in range(len(array)):
a = Matrix[array[i],array[i+1]]
values += a
另外,您放置的數組有11個元素,這意味着第10個循環將不是您想要的。
您可以使用簡單的切片來完成這項工作。
arr = np.random.randint(0, 10, (10,10))
pos = np.array([1,3,8,6,0,2,4,5,9,7])
pos = np.append(pos, pos[0])
rows = pos[0:-1]
cols = pos[1:]
result = sum(arr[rows, cols])
我不確定我是否完全理解您要達到的目標,但是……類似的事情呢?
a = np.array([1,3,8,6,0,9,2,4,5,9,7])
b = np.array(range(100)).reshape(10,10)
for i in range (len(a)):
print (a[i%len(a)],a[(i+1)%len(a)])
print (b[a[i%len(a)],a[(i+1)%len(a)]])
我從a
數組中刪除了10個,以避免索引超出范圍錯誤。
我還從二維數組中獲取了值[x,y](而不是范圍[x:y])。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.