如果我有一对IP地址,如:
IP1="168.2.65.33"
IP2="192.4.2.55"
Run Code Online (Sandbox Code Playgroud)
我想将每对编码为64位值,以便前32位是第一个IP地址,第二个是第二个IP地址.然后,我希望能够将64位值保存到文件中,以便我可以将其读回并恢复两个IP地址.
目的是节省空间.
是否可以在python中执行此操作?
我正在尝试聚类,我很惊讶它看起来有多慢.我制作了一个随机图,其中包含30个社区,每个社区包含30个节 社区中的节点有90%的连接机会,不在同一社区的节点之间的边缘有10%的连接机会.我正在测量两个节点之间的相似性,作为它们的邻居集之间的Jaccard相似性.
这个玩具示例仅在dbscan部分上花费大约15秒,如果我增加节点数量,这会非常快速地增加.由于总共只有900个节点,这似乎非常慢.
from __future__ import division
import numpy as np
from sklearn.cluster import dbscan
import networkx as nx
import matplotlib.pyplot as plt
import time
#Define the Jaccard distance. Following example for clustering with Levenshtein distance from from http://scikit-learn.org/stable/faq.html
def jaccard_distance(x,y):
return 1 - len(neighbors[x].intersection(neighbors[y]))/len(neighbors[x].union(neighbors[y]))
def jaccard_metric(x,y):
i, j = int(x[0]), int(y[0]) # extract indices
return jaccard_distance(i, j)
#Simulate a planted partition graph. The simplest form of community detection benchmark.
num_communities = 30
size_of_communities = 30 …Run Code Online (Sandbox Code Playgroud) 我有一个巨大的csv文件,大约10 ^ 9行,其中每行有一对id,如:
IDa,IDb
IDb,IDa
IDc,IDd
Run Code Online (Sandbox Code Playgroud)
调用此文件1.我有另一个小得多的csv文件,大约10 ^ 6行以相同的格式.调用此文件2.
我想简单地找到file2中包含至少一个存在于file1中某个ID的行.
有没有快速的方法来做到这一点?我不介意它是在awk,python还是perl.
考虑这个简单的循环:
float f(float x[]) {
float p = 1.0;
for (int i = 0; i < 128; i++)
p += x[i];
return p;
}
Run Code Online (Sandbox Code Playgroud)
如果你在gcc中用-O2 -march = haswell编译它,你会得到:
f:
vmovss xmm0, DWORD PTR .LC0[rip]
lea rax, [rdi+512]
.L2:
vaddss xmm0, xmm0, DWORD PTR [rdi]
add rdi, 4
cmp rdi, rax
jne .L2
ret
.LC0:
.long 1065353216
Run Code Online (Sandbox Code Playgroud)
但是,英特尔C编译器给出:
f:
xor eax, eax #3.3
pxor xmm0, xmm0 #2.11
movaps xmm7, xmm0 #2.11
movaps xmm6, xmm0 #2.11
movaps xmm5, xmm0 #2.11
movaps xmm4, …Run Code Online (Sandbox Code Playgroud)