[英]Create an adjacency list in python from csv file
不失一般性,下面是通過numpy
和collections.defaultdict
解決方案。
結果是一個嵌套字典,其中外鍵是行號,內鍵是列號。
該解決方案可以適應您的問題和所需的輸出。 您不妨查看一下pandas
以分別提取行號,列名和數據,以在以下算法中使用。
from collections import defaultdict
import numpy as np
arr = np.array([[0, 134, 0, 451, 0],
[234, 0, 4513, 0, 0],
[0, 0, 132, 34, 0],
[452, 562, 0, 0, 0]])
d = defaultdict(lambda: defaultdict(int))
for i in range(arr.shape[0]):
for j in range(arr.shape[1]):
val = arr[i, j]
if val != 0:
d[i+1][j+1] = val
結果
defaultdict(<function __main__.<lambda>>,
{1: defaultdict(int, {2: 134, 4: 451}),
2: defaultdict(int, {1: 234, 3: 4513}),
3: defaultdict(int, {3: 132, 4: 34}),
4: defaultdict(int, {1: 452, 2: 562})})
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.