Python networkx Practical Social Network Visualization

Armorhtk 2021-11-25 18:35:56
python networkx practical social network

「C'est ma participation11Le défi du mois de juin25Oh, mon Dieu.,Voir les détails de l'événement:2021Un dernier défi

Utiliserpython-networkxPratique de la visualisation des réseaux sociaux

01 UtilisernetworkxCréer un modèle de réseau graphique

  • UtilisernetworkxCréer une image,Ajouter des noeuds et des bords
  • Voir la matrice de contiguïté/Liste de contiguïté/Figure thermogramme
  • Figure habilitation du réseau
  • Figure statistiques du réseau(Sortie et entrée、Chemin le plus court)

Sac de guidage

import networkx as nx
import matplotlib.pyplot as plt
import collections
import random
import numpy as np
from pylab import rcParams
import warnings
warnings.filterwarnings("ignore")
# Support chinois
plt.rcParams['font.sans-serif'] = ['SimHei'] # Pour l'affichage normal des étiquettes chinoises
plt.rcParams['axes.unicode_minus'] = False # Utilisé pour afficher le signe négatif normalement
Copier le Code

Ajouter un noeud

# Ajouter un noeud
G = nx.Graph() # Créer un diagramme vide non recté Créer un Graphe dirigé en utilisant nx.DiGraph()
G.add_node(1) # Créer un seul noeud 
G.add_nodes_from(range(10)) # Créer un ensemble de noeuds 
nx.draw(G,node_color="darkblue")
Copier le Code

image.png

Ajouter un bord

G.add_edge(1,2)
e = [(2,3),(9,3),(8,4),(3,5),(8,6),(0,8),(1,9)]
G.add_edges_from(e)
nx.draw(G,with_labels=True,node_color="darkblue",font_color="white")
Copier le Code

image.png

Imprimer la matrice de contiguïté et la liste de contiguïté

# Imprimer la matrice de contiguïté
print("Matrice de contiguïté")
print(nx.adjacency_matrix(G))
print("="*50)
print("Liste de contiguïté")
for i in G.adj.items():
print(i)
Copier le Code

image.png

Thermographe

# Diagramme thermodynamique de la matrice adjacente : Degré de clairance de la réaction 
print(nx.to_numpy_matrix(G)) # Convertir la matrice de contiguïté en numpyFormat
plt.imshow(nx.to_numpy_matrix(G)) #Création2 Diagramme thermodynamique dimensionnel 
cbar = plt.colorbar() #--> Paramètrescolorbar Légende du diagramme thermodynamique 
cbar.set_ticks([0,1]) #--> Paramètrescolorbar Plage d'échelle 
cbar.ax.set_yticklabels(['Zero','One'],) #--Paramètrescolorbar Coordonnées de la tête et de la queue de l'axe d'échelle nom 
cbar.set_label('link', rotation=0) #--ParamètrescolorbarCoordonnées
plt.xlabel('node idx') #--Paramètres x Axe
plt.ylabel('node idx') #--Paramètres y Axe
Copier le Code

image.png

Autonomisation

# Autonomisation
for e in G.edges():
G[e[0]][e[1]]['weight'] = random.uniform(0, 1) # Utiliseruniform Redistribuer pour donner une nouvelle puissance aux relations existantes 
print(nx.to_numpy_matrix(G))
plt.imshow(nx.to_numpy_matrix(G))
cbar = plt.colorbar() #--> Paramètrescolorbar Légende du diagramme thermodynamique 
cbar.set_ticks([0,1]) #--> Paramètrescolorbar Plage d'échelle 
cbar.ax.set_yticklabels(['Zero','One'],) #--Paramètrescolorbar Coordonnées de la tête et de la queue de l'axe d'échelle nom 
cbar.set_label('link', rotation=0) #--ParamètrescolorbarCoordonnées
plt.xlabel('node idx') #--Paramètres x Axe
plt.ylabel('node idx') #--Paramètres y Axe
Copier le Code

image.png

Statistiques du réseau

##### Statistiques du réseau 
# Degré
G =nx.karate_club_graph() # Créer un club de karaté : C'est une carte très célèbre des réseaux sociaux 
degree_sequence = sorted([d for n, d in G.degree()], reverse=True) # Enregistrer le degré de chaque noeud , Et par ordre décroissant 
print("Degré Disposition", degree_sequence)
print("= "*50)
degreeCount = collections.Counter(degree_sequence) # Calculer le nombre par degré 
print("Degré Fréquence", degreeCount)
print("= "*50)
deg, cnt = zip(*degreeCount.items()) # Créer un Itérateur
rcParams['figure.figsize'] = 12, 8 # Définir la taille globale du tableau 
fig, ax = plt.subplots() # Créer un sous - Diagramme
plt.bar(deg, cnt, width=0.80, color='darkblue')
plt.title("Degré Histogramme")
plt.ylabel("Fréquence")
plt.xlabel("Degré")
plt.axes([0.4, 0.4, 0.5, 0.5])
plt.axis('off')
ax.set_xticks([d + 0.4 for d in deg])
ax.set_xticklabels(deg)
pos = nx.spring_layout(G) #-- Configuration de la disposition du réseau 
nx.draw_networkx_nodes(G, pos, node_color= 'darkblue',node_size=20) # Dessin
nx.draw_networkx_edges(G, pos, alpha=0.5) # Dessiner des bords
plt.show()
print(' La moyenne des degrés des graphiques non rectangulaires :', np.mean(G.degree()))
Copier le Code

image.png

La moyenne des degrés des graphiques non rectangulaires : 10.544117647058824

Chemin le plus court

# Chemin le plus court
R = nx.karate_club_graph()
source=14 # Choisissez un point de départ 
target=16 # Choisissez un point comme point final 
# Fonction de tracé du chemin le plus court 
def short_path_plot(G,source,target):
pos = nx.spring_layout(G) #-- Configuration de la disposition du réseau 
nx.draw(G,pos,node_color='k', with_labels=True, font_color='white') #-- Structure du dessin 
path = nx.shortest_path(G,source=14,target=16) #-- Appelezshortest pathCalculer le chemin le plus court
print("Chemin le plus court:",path)
path_edges = list(zip(path,path[1:])) #-- Créer un bord de chemin minimal 
nx.draw_networkx_nodes(G,pos,nodelist=path,node_color='r', label=True) #-- Dessiner des noeuds 
nx.draw_networkx_edges(G,pos,edgelist=path_edges,edge_color='r',width=10) #--Dessiner des bords
plt.axis('equal')
plt.show()
return
#Appelez la fonction
short_path_plot(R,source,target)
Copier le Code

image.png

02 Structure du réseau

  • Diagramme aléatoire
  • Modèle du petit monde
  • Réseau sans échelle
# Télécharger Distribution de la loi de puissance Sac
# !pip install powerlaw
import re
import powerlaw
import seaborn as sns
from operator import itemgetter
# Dessin des histogrammes
def draw_hist_network(G):
degree_sequence = sorted([d for n, d in G.degree()], reverse=True)
degreeCount = collections.Counter(degree_sequence)
deg, cnt = zip(*degreeCount.items())
rcParams['figure.figsize'] = 10, 5
fig, ax = plt.subplots()
plt.bar(deg, cnt, width=0.80, color='darkblue')
plt.title("Degré Histogramme")
plt.ylabel("Fréquence")
plt.xlabel("Degré")
ax.set_xticks([d + 0.4 for d in deg])
ax.set_xticklabels(deg)
plt.axes([0.4, 0.4, 0.5, 0.5])
Gcc = G.subgraph(sorted(nx.connected_components(G), key=len, reverse=True)[0])
pos = nx.spring_layout(G)
plt.axis('off')
nx.draw_networkx_nodes(G, pos, node_color= 'darkblue',node_size=20)
nx.draw_networkx_edges(G, pos, alpha=0.4)
plt.show()
pass
# Dessin du réseau 
def draw_network(G,name):
plt.title(name)
pos = nx.circular_layout(G)
nx.draw_networkx_nodes(G, pos, node_color= 'darkblue',node_size=20)
nx.draw_networkx_edges(G, pos, alpha=0.4)
plt.axis('off')
plt.show()
pass
Copier le Code

Diagramme aléatoire

# Générer des graphiques aléatoires
nodes_n=50
degree=20
simulation_number=10
rcParams['figure.figsize'] = 5, 5
# Taux de connectivité = 0.01:
#------------------------------
G = nx.random_regular_graph(degree,nodes_n) #<-- Generate the Small World Network
draw_network(G,name=" Diagramme de distribution positive aléatoire ")
Copier le Code

image.png

Small World Network

# Small World Network 
nodes_n=1000
degree=20
rcParams['figure.figsize'] = 5, 5
# Un modèle de petit monde simple ------------------------------
G = nx.watts_strogatz_graph(20,5,p=0.01) #<-- Générer un modèle de petit monde 
draw_network(G,name=" Modèle du petit monde ")
# Taux de connectivité = 0.01:
#------------------------------
G = nx.watts_strogatz_graph(nodes_n,degree, p = 0.01) #<-- Générer un modèle de petit monde 
draw_hist_network(G)
# Taux de connectivité = 0.05:
#------------------------------
G = nx.watts_strogatz_graph(nodes_n,degree, p = 0.05) #<-- Générer un modèle de petit monde 
draw_hist_network(G)
# Taux de connectivité = 0.1:
#------------------------------
G = nx.watts_strogatz_graph(nodes_n,degree, p = 0.1) #<-- Générer un modèle de petit monde 
draw_hist_network(G)
Copier le Code

image.png

image.png

Réseau sans échelle

Le réseau sans échelle présente une distribution de puissance

# Réseau sans échelle
node_n = 100000 #-- Nombre de noeuds
m=3 #-- Le nombre de bords attachés du nouveau noeud au noeud existant 
G = nx.barabasi_albert_graph(node_n, m)
# draw_network(G,name="Réseau sans échelle") # 100000 Le dessin des noeuds est lent et prend beaucoup de mémoire 
degree_freq = nx.degree_histogram(G)
degrees = range(len(degree_freq))
plt.figure(figsize=(12, 8))
plt.loglog(degrees[m:], degree_freq[m:],'go-')
plt.xlabel('Degré', fontsize = 'x-large')
plt.ylabel('Fréquence', fontsize = 'x-large')
plt.show()
Copier le Code

image.png

03 Mesure nodale - Centralité

Qu'est - ce que la centralité ?

La centralité est un terme qui décrit l'importance des différents noeuds d'un diagramme . Pour répondre “ Ce noeud est le noeud le plus important du diagramme (Vertex)?”Cette question, Beaucoup d'expériences ont été faites à cette fin , La liste des expériences est la suivante: :

  • Degré du point degré du Centre Degree Centrality
  • Centricité intermédiaire Betweenness Centrality
  • Approche du Centre Closeness Centrality
  • Centricité du vecteur caractéristique Eigenvector Centrality
  • Degré central de Katz Katz Centrality

Degré du point degré du Centre / Centricité intermédiaire / L'approche de la centralité utilise la centralité absolue

import pandas as pd
import matplotlib.colors as mcolors
from pylab import rcParams
Copier le Code

Zachary Le karaté Club est un réseau social largement utilisé , Les noeuds représentent les membres du Club de karaté , Les bords représentent les relations entre les membres .

# Zachary Karaté Club 
G = nx.karate_club_graph()
pos = nx.circular_layout(G) #-- Disposition du disque 
nodes = nx.draw_networkx_nodes(G, pos, node_size=400,node_color='White',edgecolors='b')
nodes.set_norm(mcolors.SymLogNorm(linthresh=0.03, linscale=2))
labels = {i:i for i in G.nodes()}
labels = nx.draw_networkx_labels(G, pos, labels, font_size=12)
edges = nx.draw_networkx_edges(G, pos, edge_color = 'grey')
plt.axis('off')
plt.show()
def draw(G, pos, measures, measure_name):
nodes = nx.draw_networkx_nodes(G, pos, node_size=400, cmap=plt.cm.plasma,
node_color=list(measures.values()),
nodelist=list(measures.keys()))
nodes.set_norm(mcolors.SymLogNorm(linthresh=0.03, linscale=1))
labels = nx.draw_networkx_labels(G, pos, font_color='white')
edges = nx.draw_networkx_edges(G, pos)
plt.title(measure_name,size=18)
cbar = plt.colorbar(nodes)
cbar.set_label(' Poids de la centralité ', rotation=0)
plt.axis('off')
plt.show()
pass
Copier le Code

image.png

Degré du point degré du Centre

# Degré du point degré du Centre Degree Centrality
draw(G, pos,nx.degree_centrality(G),' Degré du point degré du Centre ')
Copier le Code

image.png

Centricité intermédiaire

# Centricité intermédiaire Betweenness Centrality
draw(G, pos, nx.betweenness_centrality(G), ' Centricité intermédiaire ')
Copier le Code

image.png

Approche du Centre

# Approche du Centre Closeness Centrality
draw(G, pos, nx.closeness_centrality(G), ' Approche du Centre ')
Copier le Code

image.png

Centricité du vecteur caractéristique

# Centricité du vecteur caractéristique Eigenvector Centrality
draw(G, pos, nx.eigenvector_centrality(G), ' Centricité du vecteur caractéristique ')
Copier le Code

image.png

Degré central de Katz

# Degré central de Katz Katz Centrality
draw(G, pos, nx.katz_centrality(G, alpha=0.1, beta=1.0), ' Degré central de Katz ')
Copier le Code

image.png

#Créer unpandas Le tableau compare les différents degrés de centralité :
dataset1=[]
for k in nx.degree_centrality(G).keys():
dataset1.append([k,nx.degree_centrality(G)[k],nx.katz_centrality(G)[k],nx.eigenvector_centrality(G)[k],
nx.closeness_centrality(G)[k],nx.betweenness_centrality(G)[k]])
rcParams['figure.figsize'] = 5, 5
sns.set(style="ticks")
#Créationdataframe:
df=pd.DataFrame(dataset1,columns=['id',
'Degree centrality','Katz centrality','Eigenvector centrality',
'Clossness centrality','Betweenness centrality'])
#Produits La relation entre deux variables :
sns.pairplot(df)
Copier le Code

image.png

04. Mesure globale

  • Densité
  • Potentiel central
# Densité
G = nx.karate_club_graph()
print('karate_club_graphFig. Densité:', nx.density(G))
G = nx.watts_strogatz_graph(21,7,p=0.05) #<-- Générer un modèle de petit monde 
print(' Modèle de petit monde généré Densité:', nx.density(G))
Copier le Code

karate_club_graphFig. Densité: 0.13903743315508021 Modèle de petit monde généré Densité: 0.3

Densité

1.Densité
La densité du graphique non recté est D = 2 m n ( n 1 ) D=\frac{2m}{n(n-1)} La densité du digraphe est D = m n ( n 1 ) D=\frac{m}{n(n-1)} Parmi euxn- Oui.G Nombre de noeuds dans m- Oui.G Nombre de bords moyens .
La densité du graphique sans limite est 0, La densité du graphique complet est 1, La densité des graphiques multiples peut être supérieure à 1.

Potentiel central

2. Potentiel central : Le potentiel central est utilisé pour mesurer la centralité globale du réseau

  1. Trouvez d'abord la valeur maximale de centralité dans le réseau MAX;
  2. Puis Calculez ceci séparément MAX La valeur est centrée sur d'autres points “Différence”;
  3. Calculez ça. "Différence”Total;
  4. Enfin, divisez cette somme par la valeur maximale possible de la somme théorique de chaque différence .

Le potentiel central absolu est C A D = i = 1 n ( C A D m a x C A D i ) ( n 1 ) ( n 2 ) C_{AD}= \frac{\sum_{i=1}^{n}(C_{ADmax}-C_{ADi})}{(n-1)(n-2)}

Le potentiel central relatif est C R D = i = 1 n ( C R D m a x C R D i ) ( n 2 ) C_{RD}= \frac{\sum_{i=1}^{n}(C_{RDmax}-C_{RDi})}{(n-2)}

# Potentiel du Centre de pointage
def Degree_Centralization(G,mode="AD"):
n = nx.number_of_nodes(G) #-- nNombre de noeuds
centrality_list = np.array(list(nx.degree_centrality(G).values())) # Liste de centralité
max_centrality = max(centrality_list) # Centralité Max.
if mode=='AD':
degree_centralization = sum(max_centrality - centrality_list) / (n-1)*(n-2)
if mode=='RD':
degree_centralization = sum(max_centrality - centrality_list) / (n-2)
return degree_centralization
Copier le Code
G = nx.karate_club_graph()
print('karate_club_graphFig. Potentiel central absolu :', Degree_Centralization(G,mode='AD'))
print('karate_club_graphFig. Potentiel central relatif :', Degree_Centralization(G,mode='RD'))
draw_network(G,name="")
G = nx.watts_strogatz_graph(21,7,p=0.05) #<-- Générer un modèle de petit monde
print(' Modèle de petit monde généré Potentiel central absolu :', Degree_Centralization(G,mode='AD'))
print(' Modèle de petit monde généré Potentiel central relatif :', Degree_Centralization(G,mode='RD'))
draw_network(G,name="")
Copier le Code

image.png

05. Sous - groupes condensés

  • K-Nucléaire Sous - groupes condensés
G = nx.karate_club_graph()
nx.core_number(G)
# Produits
{0: 4,
1: 4,
2: 4,
3: 4,
4: 3,
5: 3,
6: 3,
7: 4,
8: 4,
9: 2,
10: 3,
11: 1,
12: 2,
13: 4,
14: 2,
15: 2,
16: 2,
17: 2,
18: 2,
19: 3,
20: 2,
21: 2,
22: 2,
23: 3,
24: 3,
25: 3,
26: 2,
27: 3,
28: 3,
29: 3,
30: 4,
31: 3,
32: 4,
33: 4}
Copier le Code
def draw_clu(G, pos, measures, measure_name):
clusters=np.array(list(set(measures.values())))
plt.figure()
nodes = nx.draw_networkx_nodes(G, pos, node_size=250, cmap=mcolors.ListedColormap(plt.cm.Set3(clusters)),
node_color=np.array(list(measures.values()))-1,
nodelist=list(measures.keys()))
print(measures.values())
print(measures.keys())
labels = nx.draw_networkx_labels(G, pos)
edges = nx.draw_networkx_edges(G, pos)
plt.title(measure_name)
rcParams['figure.figsize'] = 12, 8
rcParams['font.sans-serif'] = ['SimHei']
cb = plt.colorbar(nodes,ticks=range(0,len(clusters)), label=' Étiquette du sous - groupe ')
cb.ax.tick_params(length=0)
cb.set_ticklabels(list(set(measures.values())))
nodes.set_clim(-0.5, len(clusters)-0.5)
plt.axis('off')
plt.show()
G = nx.karate_club_graph()
pos = nx.spring_layout(G)
draw_clu(G, pos, nx.core_number(G),'k-Core')
Copier le Code

image.png

draw(G, pos, nx.core_number(G), 'k-Core')
Copier le Code

image.png

06.Liens Prévisions

import networkx as nx
import numpy as np
import urllib.request
urllib.request.urlretrieve("http://snap.stanford.edu/data/ca-GrQc.txt.gz", "ca-GrQc.txt.gz")
graph = nx.read_edgelist('ca-GrQc.txt.gz')
graph.order()
draw_network(graph,name="")
Copier le Code

image.png

degrees = dict(graph.degree())
author = sorted(degrees.items(),key=lambda x: x[1],reverse=True)[500][0]
print('Universitaires %s De"Degré"Pour %d' % (author, graph.degree()[author]))
# Obtenir le Sous - Diagramme 
def get_subgraph(graph, nodes, n=100):
neighbors = set()
for ni in nodes:
neighbors |= set(graph.neighbors(ni))
# plot at least the target node and his neighbors.
result = set(nodes) | neighbors
# add "friends of friends" up to n total nodes.
for x in neighbors:
# how many more nodes can we add?
maxsize = n - len(result)
toadd = set(graph.neighbors(x)) - result
result.update(list(toadd)[:maxsize])
if len(result) > n:
break
return graph.subgraph(result)
subgraph = get_subgraph(graph, [author], n=30)
print(' Il y a un %d Noeud' % len(subgraph.nodes()))
Copier le Code

Universitaires 13813 De"Degré"Pour 13
Il y a un 30 Noeud

# Dessiner des sous - cartes
def plot_subgraph(subgraph, target_nodes):
nodes = list(subgraph.nodes())
colors = ['c'] * len(nodes)
for n in target_nodes:
idx = nodes.index(n)
colors[idx] = 'r'
sizes = [800] * len(nodes)
sizes[idx] = 1000
plt.figure(figsize=(8,8))
plt.axis('off')
nx.draw_networkx(subgraph, nodelist=nodes, with_labels=True,
width=.5, node_color=colors,
node_size=sizes, alpha=.5)
plot_subgraph(subgraph, [author])
Copier le Code

image.png

Auteur recommandé 13813 Avec qui? ?

Méthode de prévision des connexions

  • Voir la tâche de prévision des liens comme un problème de tri dans la recherche d'information
  • Calculer la nouvelle fraction pour chaque côté s ( X , Y ) s(X,Y) .
  • Trier tous les bords fractionnels possibles par ordre décroissant s ( X , Y ) s(X,Y) .
  • Sélectionner le bord fractionné le plus élevé s ( X , Y ) s(X,Y) \rightarrow .

1.) Chemin le plus court: s ( X , Y ) = s(X,Y) = De X X À Y Y Longueur du chemin le plus court.

# Algorithme de chemin le plus court
def rank_by_shortest_path(graph, node):
paths = nx.shortest_path_length(graph, node)
return sorted(paths.items(), key=lambda x: x[1])
shortest_paths = rank_by_shortest_path(graph, author)
print('Chemin le plus court top-20 :')
shortest_paths[:20]
print(" Par l'auteur 13813Est le point de départ, Le chemin le plus court dans le réseau est 2 Les collaborateurs de %sBits" % len([s for s in shortest_paths if s[1] == 2]))
print('Liens Prévisions top-10 :')
[s for s in shortest_paths if s[1] == 2][:10]
Copier le Code

image.png

Par l'auteur 13813Est le point de départ, Le chemin le plus court dans le réseau est 2 Les collaborateurs de 57Bits

image.png

Visualisation, Effets recommandés

pair = set([author, '5227','5543','10931','639','18736'])
plot_subgraph(get_subgraph(graph, pair, n=30), pair)
Copier le Code

image.png

Une autre approche:Si X X Et y y Il y a beaucoup de co - auteurs ,Alors x x Et y y Plus susceptibles d'être co - auteurs

2.) jaccard: S = N ( X ) N ( Y ) N ( X ) N ( Y ) S = \frac{|N(X) \cap N(Y)|}{|N(X) \cup N(Y)|}

def rank_by_jaccard(graph, node):
neighbors = set(graph.neighbors(node))
scores = []
for n in graph.nodes():
neighbors2 = set(graph.neighbors(n))
scores.append((n, len(neighbors & neighbors2) / len(neighbors | neighbors2)))
return sorted(scores, key=lambda x: x[1], reverse=True)
common_jaccard = rank_by_jaccard(graph, author)
common_jaccard[:20]
plt.plot(sorted([x[1] for x in common_jaccard if x[1] > 0.]))
plt.show()
Copier le Code

image.png

image.png

def dataframe_scores(scores_list, names, n):
ids = set()
for scores in scores_list:
ids.update([x[0] for x in scores[:n]])
print('jaccard Prédiction des liens algorithmiques top %d' % (n))
results = []
for id_ in ids:
result = {'id': id_}
for scores, name in zip(scores_list, names):
for rank, (id2, score) in enumerate(scores):
if id2 == id_:
result[name + '_rank'] = rank
result[name + '_score'] = score
break
results.append(result)
headers = ['id']
for name in names:
headers.append(name + '_rank')
headers.append(name + '_score')
return pd.DataFrame(results, columns=headers)
df = dataframe_scores([common_jaccard],['jaccard'],20)
df.sort_values('jaccard_rank').head(10)
pair = set([author, '23204','19204','17559','409','6746'])
plot_subgraph(get_subgraph(graph, pair, n=30), pair)
Copier le Code

image.png

版权声明
本文为[Armorhtk]所创,转载请带上原文链接,感谢
https://pythonmana.com/2021/11/20211125183534640r.html

  1. python3.7 FileNotFoundError: [WinError 2] 系统找不到指定的文件。
  2. 最全面的Python重点知识汇总
  3. python中 我想爬取一个网页,我在cmd中pip list中已经把requests 以及bs4 弄好了 但是他还是提示我没有那个模块
  4. You can learn Python articles without reading online classes (the first day)
  5. 在Python和Go项目之后使用Rust的经验分享 - scaleway
  6. 使用PyO3从Python调用 Rust:加速Python
  7. Python 3.7 filenotfounderror: [winerror 2] le système n'a pas pu trouver le fichier spécifié.
  8. Python 一切皆对象
  9. 【Pandas学习笔记01】强大的分析结构化数据的工具集
  10. 求各位亲们可以解答一下嘛,为什么跑不出来呀,大学Python
  11. 【Pandas学习笔记01】强大的分析结构化数据的工具集
  12. python飞机大战如何让飞机始终在界面中,不能跑出界面
  13. Python代码阅读(第63篇):数字奇偶性
  14. python建立⼀個圖形介⾯應⽤(GUI app)
  15. python接口自动化的html格式报告以邮件形式发送展示的原文很丑怎么处理
  16. 针对初学者,我建议你学这 3 个 Python AutoEDA 工具包
  17. #yyds干货盘点#Python-爬虫_urlib一个类型和六个方法
  18. Pour les débutants, je vous recommande d'apprendre ces 3 kits autoeda Python
  19. 我想问python怎么入门嘞?求各路人士
  20. Summary of today's Django lessons: data reverse query triggers error field 'score_ jieshoufankui‘ expected a number but got ‘‘-20211109
  21. 关于#python_while循环的写法#的问题,如何解决?
  22. Python异常处理中异常的种类有哪些?你知道几个?
  23. Python异常處理中异常的種類有哪些?你知道幾個?
  24. Quels sont les types d'exceptions dans la gestion des exceptions python? Combien en savez - vous?
  25. À propos de # Python Comment résoudre le problème de l'écriture de la Boucle while?
  26. Python如何操作system.data.sqlite数据库
  27. python数字游戏,让你欲罢不能
  28. Python中的可迭代对象、迭代器、For循环工作机制、生成器
  29. 一个从没接触过编程的人,如何自学进入Python行业?
  30. 一份超级实用的 Python ”技巧“清单
  31. Python 程序员给上路初学者的3点忠告
  32. 3 conseils pour les débutants sur la route par les programmeurs Python
  33. Une liste de conseils Python super pratiques
  34. Comment quelqu'un qui n'a jamais été en contact avec la programmation peut - il apprendre à entrer dans l'industrie python?
  35. Objets itérables, itérateurs, pour le mécanisme de travail circulaire, générateurs en python
  36. Les Jeux de chiffres Python vous font vous arrêter
  37. Comment Python fonctionne avec la base de données system.data.sqlite
  38. Python之html与markdown互相转换
  39. Python之html與markdown互相轉換
  40. Conversion HTML et markdown de Python
  41. Python生成的随机数,要怎么设定成随机数a小于随机数b啊
  42. Python生成的隨機數,要怎麼設定成隨機數a小於隨機數b啊
  43. Le nombre aléatoire généré par Python, comment définir le nombre aléatoire a est inférieur au nombre aléatoire B
  44. Python爬虫能做什么
  45. Python老技师给上路初学者的3点忠告
  46. 3 conseils aux débutants sur la route de l'ancien technicien Python
  47. Que peuvent faire les reptiles Python
  48. The code NPM cloned from git will report a python error after it is installed!
  49. 数据分析从零开始实战,Pandas读写CSV数据
  50. Python基础(十二):类与对象
  51. Python Foundation (12): classes et objets
  52. Python基礎(十二):類與對象
  53. L'analyse des données commence à zéro et pandas lit et écrit les données CSV
  54. Python Qt GUI设计:QSlider滑动条类(基础篇—16)
  55. #yyds干货盘点#数据分析从零开始实战,Pandas读写CSV数据
  56. This paper designs an examination system for automatically setting questions and judging papers by using Python standard library language to investigate the ability of users to calculate four integers within 100.
  57. Yyds Dry Inventory # Data Analysis started from zero, pandas read and write CSV Data
  58. python数据结构:数组、列表、栈、队列及实现
  59. Python编程真的是未来人工智能的主流吗?
  60. Python编写通讯录,支持模糊查询,利用数据库存储