Python:手工生成两个环的二维数据

import numpy as np
import pandas as pd
import math
import matplotlib.pyplot as plt

num_data = 1000
center = np.array([5.0,5.0])
radiu_inner = 2
radiu_outer = 4

num_inner = num_data //4
num_outer = num_data - num_inner

data = []
theta = 0.0
for i in range(num_inner):
    pho = (theta % 360) * math.pi / 180
    tmp = np.zeros(2,dtype=float)
    tmp[0] = radiu_inner * math.cos(pho) + np.random.rand(1) + center[0]
    tmp[1] = radiu_inner * math.sin(pho) + np.random.rand(1) + center[1]
    data.append(tmp)
    theta += 3
for j in range(num_outer):
    pho = (theta % 360) * math.pi / 180
    tmp = np.zeros(2,dtype=float)
    tmp[0] = radiu_outer * math.cos(pho) + np.random.rand(1) + center[0]
    tmp[1] = radiu_outer * math.sin(pho) + np.random.rand(1) + center[1]
    data.append(tmp)
    theta += 2

label = np.zeros(num_data)
for i in range(num_inner,num_data):
    label[i] = 1
data = np.array(data)

print(data.shape)
print(label.shape)

label = np.vstack(label)
X = np.hstack((data,label))
# X = np.concatenate((data,label.T),axis=0)
print(X.shape)

plt.scatter(X[:,0],X[:,1],c=X[:,2])
plt.show()

X = pd.DataFrame(X)
X.to_csv(r'E:\dataset\clusterData\two_circles.csv',header=None,index=None)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

DeniuHe

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值