Python 使用元组列表作为索引,从numpy 2d数组中获取值
我有一个元组列表:Python 使用元组列表作为索引,从numpy 2d数组中获取值,python,arrays,numpy,Python,Arrays,Numpy,我有一个元组列表:[(0,0)、(1,1)、(2,2)、(3,3)、(4,4)] 我有我的2d numpy阵列: array([[8, 6, 5, 9, 3], [7, 9, 7, 9, 1], [2, 1, 8, 8, 6], [7, 1, 5, 1, 3], [6, 7, 1, 1, 5]]) 如何使用numpy列表中的位置从二维数组中获取值? 我应该得到对角线:[8,9,8,1,5]这里有一种方法: a=np.array([[8,
[(0,0)、(1,1)、(2,2)、(3,3)、(4,4)]
我有我的2d numpy阵列:
array([[8, 6, 5, 9, 3],
[7, 9, 7, 9, 1],
[2, 1, 8, 8, 6],
[7, 1, 5, 1, 3],
[6, 7, 1, 1, 5]])
如何使用numpy列表中的位置从二维数组中获取值?
我应该得到对角线:
[8,9,8,1,5]
这里有一种方法:
a=np.array([[8, 6, 5, 9, 3],
[7, 9, 7, 9, 1],
[2, 1, 8, 8, 6],
[7, 1, 5, 1, 3],
[6, 7, 1, 1, 5]])
np.diag(a)
打印
数组([8,9,8,1,5])
这里有一种方法:
a=np.array([[8, 6, 5, 9, 3],
[7, 9, 7, 9, 1],
[2, 1, 8, 8, 6],
[7, 1, 5, 1, 3],
[6, 7, 1, 1, 5]])
np.diag(a)
打印数组([8,9,8,1,5])
试试这个
>>> import numpy as np
>>> req_index = [(0,0), (1,1), (2,2), (3,3), (4,4)] # this is your tuple index list
>>> arr = np.array([[8, 6, 5, 9, 3],
[7, 9, 7, 9, 1],
[2, 1, 8, 8, 6],
[7, 1, 5, 1, 3],
[6, 7, 1, 1, 5]])
>>>
输出:
>>> [arr[i][j] for i, j in req_index]
[8, 9, 8, 1, 5]
试试这个
>>> import numpy as np
>>> req_index = [(0,0), (1,1), (2,2), (3,3), (4,4)] # this is your tuple index list
>>> arr = np.array([[8, 6, 5, 9, 3],
[7, 9, 7, 9, 1],
[2, 1, 8, 8, 6],
[7, 1, 5, 1, 3],
[6, 7, 1, 1, 5]])
>>>
输出:
>>> [arr[i][j] for i, j in req_index]
[8, 9, 8, 1, 5]
您可以转换元组列表,并将其作为元组中的项传递:
>>> b = [(0, 0), (1, 1), (2, 2), (3, 3), (4, 4)]
>>> a[tuple(np.transpose(b))]
array([8, 9, 8, 1, 5])
您可以转换元组列表,并将其作为元组中的项传递:
>>> b = [(0, 0), (1, 1), (2, 2), (3, 3), (4, 4)]
>>> a[tuple(np.transpose(b))]
array([8, 9, 8, 1, 5])
这始终是对角线还是只是一个示例?您需要将列表转换为列表元组,每个维度一个
([0,1,2,3],[0,1,2,3])
这始终是对角线还是只是一个示例?您需要将列表转换为列表元组,每个维度一个([0,1,2,3],[0,1,2,3])