Python 在邻接矩阵中寻找特定场的元素
我有一个pandas邻接数据框,我需要能够通过它的物理编号位置,而不是索引或列位置,也不是它的坐标来识别数据框上的任何元素 数据帧是一个10000 x 10000的邻接矩阵:Python 在邻接矩阵中寻找特定场的元素,python,pandas,dataframe,Python,Pandas,Dataframe,我有一个pandas邻接数据框,我需要能够通过它的物理编号位置,而不是索引或列位置,也不是它的坐标来识别数据框上的任何元素 数据帧是一个10000 x 10000的邻接矩阵: adj.shape (10103, 10103) 而不是像这样做 adj.iloc[coord1], [coord2]] (这很好),我需要能够找到数据帧上的值,通过它的物理数从0到100000000(0是第一个字段,100000000是最后一个字段) 我尝试过(我认为是)一种笨拙的方法,即堆叠数据帧,转换为列表,然
adj.shape
(10103, 10103)
而不是像这样做
adj.iloc[coord1], [coord2]]
(这很好),我需要能够找到数据帧上的值,通过它的物理数从0到100000000(0是第一个字段,100000000是最后一个字段)
我尝试过(我认为是)一种笨拙的方法,即堆叠数据帧,转换为列表,然后在我感兴趣的索引处找到合适的值:
adj().stack().tolist()[0]
(或任何其他数字,告诉我该位置的值是多少。这也非常有效,但我希望能够保持邻接矩阵不变。任何帮助都将不胜感激
谢谢!使用整数除法和模:
np.random.seed(1)
adj = pd.DataFrame(np.random.rand(20,20))
# print (adj)
N = 99
a = adj.stack().tolist()[N]
print (a)
0.6171449136207239
b = adj.iloc[N // adj.shape[0], N % adj.shape[1]]
print (b)
0.6171449136207239