Exemplo n.º 1
0
 def _initializeProjection(self):
     if self.dim <= self.lowerDimensionBound:
         # We only need to reduce the dimension if it's bigger than
         # lowerDimensionBound; otherwise, chose identity
         self.projection = 1
     else:
         projection_shape = self.dim, self.lowerDimensionBound
         self.projection = random.standard_normal(projection_shape)
         self.projection /= sqrt(self.lowerDimensionBound)
Exemplo n.º 2
0
 def _initializeProjection(self):
     if self.dim <= self.lowerDimensionBound:
         # We only need to reduce the dimension if it's bigger than
         # lowerDimensionBound; otherwise, chose identity
         self.projection = 1
     else:
         projection_shape = self.dim, self.lowerDimensionBound
         self.projection = random.standard_normal(projection_shape)
         self.projection /= sqrt(self.lowerDimensionBound)
Exemplo n.º 3
0
 def __init__(self, tag, dimensions):
     self.index = tag
     self.centroid = array(10 * random.standard_normal(dimensions))
Exemplo n.º 4
0
from sklearn import metrics
from scipy import random

c = []
d = []
e = []

for i in range(10000):
    a = random.random_integers(0,1)
    b = random.standard_normal()
    c.append(a)
    d.append(b)
    e.append(a)
print metrics.normalized_mutual_info_score(c,d)
print metrics.adjusted_mutual_info_score(c,d)
print metrics.mutual_info_score(c,d)
print metrics.normalized_mutual_info_score(c,e)
print metrics.adjusted_mutual_info_score(c,e)
print metrics.mutual_info_score(c,e)
print c[:10]
print d[:10]
plot2D(fx,fy,Z,"f_rectangulo")

z = (fft.fftshift(fft.ifft2(Z))).real
zoom1 = 3*N/8
zoom2 = 5*N/8
plot2D (x[zoom1:zoom2,zoom1:zoom2], y[zoom1:zoom2,zoom1:zoom2],z[zoom1:zoom2,zoom1:zoom2], "sinc_zoom")

# Gaussiana + ruido + recorte en frecuencias
sigma_x = 5.
sigma_y = 5.
s = 0.01/(2*np.pi*sigma_x*sigma_y)
x_zero = N/2
y_zero = N/2

gaussian = np.exp(-((x-x_zero)**2.0/(2*sigma_x**2.0)+(y-y_zero)**2.0/(2*sigma_y**2.0)))/(2*np.pi*sigma_x*sigma_y)
z = gaussian + random.standard_normal((N,N)) * s

plot2D (x, y, z, "Gaussiana_ruido")

Z = fft.fft2(z)
plot2D (fx, fy, np.abs(Z), "f_Gaussiana_ruido")

N_corte  = 10
for i in range(N):
    for j in range(N):
	if ((i+N/2)%N - N/2)**2 + ((j+N/2)%N - N/2)**2 > (N_corte)**2:
	   Z[i][j] = 0.0

plot2D (fx, fy, np.abs(Z), "f_Gaussiana_ruido_recorte")
z1 = fft.ifft2 (Z).real
plot2D (x, y, z1, "Gaussiana_ruido_recorte")
Exemplo n.º 6
0
    data = signal[:]
    while True:
       noise = []
       sigma = np.std(data)
       for val in data:
           if val < 3 * sigma:
              noise.append(val)
       if len(noise) == len(data): break
       data = noise[:]
    
    return np.mean(data),np.std(data)

def gaussian(x,stdev=1.0,mean=0.0):

    return np.exp(-1.0*(x-mean)**2.0/(2*stdev**2.0))/(stdev*np.sqrt(2*np.pi))

# Señal: se tiene una gaussiana y dos deltas como fuentes

N = 250
signal = np.zeros(N)
for i in range(65,136):
    signal[i] = 250.0 * gaussian(i,10.0,100.0) # Fuente (intensa) entre pixeles 65 y 135
signal[180] = 10.0 # Fuente (intensa) en pixel 180
signal[220] = 1.5  # Fuente (débil) en pixel 220
n_signal = signal + random.standard_normal(N) # Ruido con media 0 y desviación estándar 1

# Ejemplos: se usa thresholding con k = {2.0,2.5,3.0}

k = [2.0,2.5,3.0]
for i in range(len(k)):
    pos_sources,threshold = thresholding(n_signal,k[i])
f = fft.fftfreq (N)

# Corte de frecuencias: funcion rectangular
Y = np.zeros(N)
Y[N/4:3*N/4] = 1
Y = fft.ifftshift(Y)
plot (f, Y, "f_rectangulo")

y = (fft.fftshift(fft.ifft(Y))).real
plot (x, y, "sinc")
plot (x[3*N/8:5*N/8], y[3*N/8:5*N/8], "sinc_zoom")

# Gaussiana + ruido + recorte en frecuencias
sigma = 50.
s = 0.1 / np.sqrt(2*np.pi*sigma**2)
y = np.exp (-(x-N/2)**2/(2*sigma**2))/np.sqrt(2*np.pi*sigma**2)
y += random.standard_normal(N) * s

plot (x, y, "Gaussiana_ruido")

Y = abs(fft.fft(y))
plot (f, Y, "f_Gaussiana_ruido")

N_corte = 10.
Y[N_corte : N - N_corte] = 0.
plot (f, Y, "f_Gaussiana_ruido_recorte")

y1 = fft.fftshift(fft.ifft (Y)).real
plot (x, y1, "Gaussiana_ruido_recorte")
plot (x, np.exp (-(x-N/2)**2/(2*sigma**2))/np.sqrt(2*np.pi*sigma**2), "Gaussiana_ruido_recorte", clear = False)
Exemplo n.º 8
0
import numpy as np
from scipy import random, optimize, interpolate
import matplotlib.pyplot as plt

# Generate oscillating signal on -2pi,2pi with noise
x = np.arange(-np.pi*2,np.pi*2,0.5)
x += random.standard_normal(np.shape(x))*0.1
y = np.sin(x) + random.standard_normal(np.shape(x))*0.1

# Model signal with spline interp (smoothing set to 0.5)
interp_function = interpolate.UnivariateSpline(x,y,s=0.5)

# New x range for data
newx = np.arange(-np.pi*2, np.pi*2, 0.1)
newy = interp_function(newx)

# Plot Data
plt.figure()
plt.plot(newx, newy,'b-',label='interp')
plt.plot(x, y, 'ko',label='raw data')
plt.legend()
plt.show()

# ... or fit the data
fitfunc = lambda p, x: p[0]*np.sin(2*np.pi/p[1]*x+p[2])
errfunc = lambda p, x, y: fitfunc(p, x) - y

p0 = [1., 5., 0.] # Initial guess for the parameters
p1, success = optimize.leastsq(errfunc, p0[:], args=(x, y))

plt.figure()
Exemplo n.º 9
0
from sklearn import metrics
from scipy import random

c = []
d = []
e = []

for i in range(10000):
    a = random.random_integers(0, 1)
    b = random.standard_normal()
    c.append(a)
    d.append(b)
    e.append(a)
print metrics.normalized_mutual_info_score(c, d)
print metrics.adjusted_mutual_info_score(c, d)
print metrics.mutual_info_score(c, d)
print metrics.normalized_mutual_info_score(c, e)
print metrics.adjusted_mutual_info_score(c, e)
print metrics.mutual_info_score(c, e)
print c[:10]
print d[:10]
Exemplo n.º 10
0
def addNoise (hdu, sigma):
    # Agrega ruido Gaussiano de desviacion estandard sigma a hdu.
    hdu += random.standard_normal((maxROW,maxCOL))*sigma