gpt4 book ai didi

python - 使用 Python 创建棋盘分布

转载 作者:行者123 更新时间:2023-12-03 14:23:33 24 4
gpt4 key购买 nike

我想在 Python 中创建一个棋盘分布。

目前我使用以下脚本创建一个 2 x 2大小棋盘:

import numpy as np
import matplotlib.pyplot as plt

n_points = 1000
n_classes = 2

x = np.random.uniform(-1,1, size=(n_points, n_classes))
mask = np.logical_or(np.logical_and(x[:,0] > 0.0, x[:,1] > 0.0), \
np.logical_and(x[:,0] < 0.0, x[:,1] < 0.0))
y = np.eye(n_classes)[1*mask]

plt.scatter(x[:,0], x[:,1], c=y[:,0], cmap="bwr", alpha=0.5)
plt.show()

这创造了

enter image description here

我想知道是否存在一种简单的方法来概括上述代码以创建大小为 n x n 的棋盘分布。 ?

编辑

使用@jpf 很好的解决方案
import numpy as np
import matplotlib.pyplot as plt
from numpy import sin

n_points = 10000
n_classes = 2
n = 8

x = np.random.uniform(-(n//2)*np.pi, (n//2)*np.pi, size=(n_points, n_classes))
mask = np.logical_or(np.logical_and(sin(x[:,0]) > 0.0, sin(x[:,1]) > 0.0), \
np.logical_and(sin(x[:,0]) < 0.0, sin(x[:,1]) < 0.0))
y = np.eye(n_classes)[1*mask]

plt.scatter(x[:,0], x[:,1], c=y[:,0], s=1, cmap="bwr", alpha=0.5)
plt.savefig("test.png", dpi=150)
plt.show()

我现在可以生成任意大小的棋盘分布:

enter image description here

最佳答案

如何使用像正弦这样的周期函数?

import numpy as np
import matplotlib.pyplot as plt
from numpy import sin

n_points = 10000
n_classes = 2

x = np.random.uniform(-10,10, size=(n_points, n_classes))
mask = np.logical_or(np.logical_and(sin(x[:,0]) > 0.0, sin(x[:,1]) > 0.0), \
np.logical_and(sin(x[:,0]) < 0.0, sin(x[:,1]) < 0.0))
y = np.eye(n_classes)[1*mask]

plt.scatter(x[:,0], x[:,1], c=y[:,0], cmap="bwr", alpha=0.5)
plt.show()

关于python - 使用 Python 创建棋盘分布,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60019462/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com