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