-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathutils_cripto.py
More file actions
80 lines (62 loc) · 2.42 KB
/
Copy pathutils_cripto.py
File metadata and controls
80 lines (62 loc) · 2.42 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
import numpy as np
from numba import njit, int32, int64, float64
from numba.core.types.containers import ListType
from numba.core.types import Array
int_var = int64
int_vect_var = int64[:]
float_var = float64
np_int_var = np.int64
np_float_var = np.float64
def preparar_x_y_cripto(dados, tam_janela_x=100, dist_y=1):
pos_atual_min_x = 0
dados = np.array(dados)
len_dados = len(dados)
tam_vetores = len(dados) - tam_janela_x - dist_y + 1
x_vals = [0] * (tam_vetores)
#x_vals = {i : 0 for i in range( tam_vetores )}
y_vals = np.zeros(tam_vetores)
for j in range(tam_vetores):
fim_janela = pos_atual_min_x + tam_janela_x
x_vals[j] = dados[pos_atual_min_x: fim_janela].copy()
y_vals[j] = np.sign(dados[fim_janela + dist_y - 1] - dados[fim_janela - 1])
#y_vals[j] = np.sign(dados[fim_janela + dist_y - 1] - x_vals[j][-1])[0]
pos_atual_min_x += 1
return x_vals, y_vals
def preparar_x_y_cripto_OLD(dados, tam_janela_x=100, dist_y=1):
pos_atual_min_x = 0
dados = np.array(dados)
len_dados = len(dados)
tam_vetores = len(dados) - tam_janela_x - dist_y + 1
x_vals = [0] * (tam_vetores)
#x_vals = {i : 0 for i in range( tam_vetores )}
y_vals = np.zeros(tam_vetores)
j = 0
while(pos_atual_min_x + tam_janela_x + dist_y - 1 < len_dados):
fim_janela = pos_atual_min_x + tam_janela_x
x_vals[j] = dados[pos_atual_min_x: fim_janela].copy()
y_vals[j] = np.sign(dados[fim_janela + dist_y - 1] - dados[fim_janela - 1])
#y_vals[j] = np.sign(dados[fim_janela + dist_y - 1] - x_vals[j][-1])[0]
pos_atual_min_x += 1
j += 1
return x_vals, y_vals
def calcular_Sigma(x_vals):
n = len(x_vals)
Sigma = np.zeros((n, n))
for i in range(n):
for j in range(i, n):
#Sigma[i, j] = (x_vals[i] * x_vals[j]).sum()
Sigma[i, j] = x_vals[i].dot(x_vals[j])
if(j != i):
Sigma[j, i] = Sigma[i, j]
return Sigma
@njit(float_var[:, :](ListType(Array(float_var, 1, 'C'))), parallel=True, cache=True)
def numba_calcular_Sigma(x_vals):
n = len(x_vals)
Sigma = np.zeros((n, n), dtype=float_var)
for i in range(n):
for j in range(i, n):
#Sigma[i, j] = (x_vals[i] * x_vals[j]).sum()
Sigma[i, j] = x_vals[i].dot(x_vals[j])
if(j != i):
Sigma[j, i] = Sigma[i, j]
return Sigma