Skip to content

Instantly share code, notes, and snippets.

View rdisipio's full-sized avatar

Riccardo Di Sipio rdisipio

View GitHub Profile
from sklearn.decomposition import PCA
pca = PCA(n_components=5)
X_pca = pca.fit_transform(X)
print("Relative importance (fraction of unity):")
print(pca.explained_variance_ratio_)
from sklearn.datasets import make_classification
n_features = 20
feature_names = [f"x_{n}" for n in range(n_features)]
class_names = ['0', '1']
X, y = make_classification(n_samples=1000,
n_features=n_features, n_informative=5,
n_redundant=5, n_repeated=0,
n_classes=2, n_clusters_per_class=1,
@rdisipio
rdisipio / dqm_graph_partitioning.py
Created June 21, 2021 18:15
Define a DQM model for graph partitioning
import networkx as nx
import dimod
from dwave.system import LeapHybridDQMSampler
...
dqm = dimod.DiscreteQuadraticModel()
num_nodes = G.number_of_nodes()
for i in G.nodes:
@rdisipio
rdisipio / multiply_csr_vector.py
Created May 25, 2021 21:46
Matrix-vector multiplication with CSR matrix
y = [0 for _ in range(n)]
for i in range(n):
for k in range(Ap[i], Ap[i+1]):
j = Aj[k]
y[i] += Ax[k] * v[j]
@rdisipio
rdisipio / csr_to_csc.py
Last active January 25, 2023 20:08
Sparse Matrix CSR to CSC conversion
def csr_to_csc(m, n, Ax, Aj, Ap):
nnz = len(Ax)
Bx = [0 for _ in range(nnz)]
Bi = [0 for _ in range(nnz)]
Bp = [0 for _ in range(m+1)]
# Count elements in each column:
cnt = [0 for _ in range(n)]
for k in range(nnz):
@rdisipio
rdisipio / unique_paths_memoization.py
Created May 21, 2021 16:17
Unique paths using memoization
#!/usr/bin/env python
m = 3
n = 4
S = [[None for _ in range(n+1)] for _ in range(m+1)]
def explore(i, j):
if i < 0 or j < 0 or i > m or j > n:
return 0
@rdisipio
rdisipio / explore_chessboard_dp.py
Last active May 21, 2021 15:45
Chessboard exploration
#!/usr/bin/env python
m = 3
n = 4
S = [[None for _ in range(n+1)] for _ in range(m+1)]
for i in range(m):
for j in range(n):
if i==0 or j==0:
@rdisipio
rdisipio / knapsack_dp.py
Last active June 2, 2021 19:52
Knapsack with DP
#!/usr/bin/env python
values = [5, 10, 15]
weights = [1, 2, 3]
W = 5
n = len(values)
S = [[None for _ in range(W + 1)] for _ in range(n + 1)]
def knapsack(w, v, W, i):
#!/usr/env/python
graph = {
'A' : ['B','C'],
'B' : ['D', 'E'],
'C' : ['F'],
'D' : [],
'E' : [],
'F' : []
}
#!/usr/env/python
graph = {
'A' : ['B','C'],
'B' : ['D', 'E'],
'C' : ['F'],
'D' : [],
'E' : [],
'F' : []
}