Как сделать кольцо из гауссовой раздачи - PullRequest
0 голосов
/ 22 сентября 2018

enter image description here

Я видел формулу для создания кольца из гауссовского на https://arxiv.org/pdf/1606.05908.pdf, но она не работала, и я нашел другую формулу, которая делает сферу (кольцо) из нормального распределения

enter image description here

отображается с помощью GCN.Я использовал этот алгоритм, чтобы сделать кольцо из нормального распределения, но он также не работал.

, пожалуйста, помогите мне

1 Ответ

0 голосов
/ 22 сентября 2018

Первый пример работает просто отлично.Вот соответствующий код Python:

import matplotlib.pyplot as plt
import numpy as np

# Create and plot multivariate normal distribution
mean = [0, 0]
cov = [[1,0],[0,1]]
x, y = np.random.multivariate_normal(mean, cov, 100).T
plt.figure(1)
plt.plot(x, y, 'x')
plt.axis('equal')

# Generate z    
def g(xy):
    res_z = []
    for z in xy:
        z = np.array(z)
        res_z.append(z / 10 + z / np.linalg.norm(z))
    return res_z
xy = zip(x, y)
res_z = g(xy)

# Plot z
zx, zy = zip(*res_z)
plt.figure(2)
plt.plot(zx, zy, 'x')
plt.axis('equal')
plt.show()

и это выводит (если вы нажимаете и перетаскиваете цифры в положение, показанное ниже):

multivariate gaussian remapped to circle

Обратите внимание, что при запуске сценария ваши выходные данные будут немного отличаться, поскольку np.random.multivariate_normal выполняет случайную выборку из базового распределения (в среднем [0,0], ковариационная матрица идентичности).

Я на Anaconda 5.1.0, Python 3.6.

HTH.

...