如何用嵌套数组制作散点图

发布于 2025-01-23 08:46:58 字数 1516 浏览 1 评论 0原文

我试图用我拥有的坐标列表制作散点图。我只是困惑了如何将这些坐标分隔为X和Y,以便可以将其插入PLT.scatter()函数,尤其是考虑到它是嵌套的数组。

   array([array([1., 0.]), array([ 0., -1.]), array([-1.,  0.]),
   array([-1., -1.]), array([ 1., -1.]), array([ 0., -2.]),
   array([-2.,  0.]), array([2., 0.]), array([-2., -1.]),
   array([ 2., -1.]), array([-1., -2.]), array([ 1., -2.]),
   array([-2., -2.]), array([ 2., -2.]), array([ 0., -3.]),
   array([3., 0.]), array([-3.,  0.]), array([ 1., -3.]),
   array([-1., -3.]), array([ 3., -1.]), array([-3., -1.]),
   array([-2., -3.]), array([ 3., -2.]), array([-3., -2.]),
   array([ 2., -3.]), array([-4.,  0.]), array([4., 0.]),
   array([-4., -1.]), array([ 4., -1.]), array([-3., -3.]),
   array([ 3., -3.]), array([ 4., -2.]), array([-4., -2.]),
   array([ 4., -3.]), array([-4., -3.]), array([-1., -5.]),
   array([ 1., -5.]), array([-5., -1.]), array([-5., -2.]),
   array([-5., -3.]), array([ 3., -5.]), array([-3., -5.]),
   array([-6.,  0.]), array([-6., -1.]), array([-6., -2.]),
   array([-6., -3.]), array([-5., -5.]), array([-7., -1.]),
   array([ 1., -7.]), array([-1., -7.]), array([-7., -2.]),
   array([-3., -7.]), array([-7., -3.]), array([ 3., -7.]),
   array([-7., -5.]), array([-5., -7.]), array([-1., -9.]),
   array([ 1., -9.]), array([ 3., -9.]), array([-3., -9.]),
   array([-7., -7.]), array([-5., -9.]), array([  1., -11.]),
   array([ -1., -11.]), array([ -3., -11.]), array([  3., -11.]),
   array([-7., -9.]), array([ -5., -11.]), array([ -7., -11.])],
  dtype=object)

I am trying to make a scatter plot with the list of coordinates I have. I'm just confused how to separate these coordinates into x and y so that I can plug it into the plt.scatter() function, especially considering it is a nested array of arrays.

   array([array([1., 0.]), array([ 0., -1.]), array([-1.,  0.]),
   array([-1., -1.]), array([ 1., -1.]), array([ 0., -2.]),
   array([-2.,  0.]), array([2., 0.]), array([-2., -1.]),
   array([ 2., -1.]), array([-1., -2.]), array([ 1., -2.]),
   array([-2., -2.]), array([ 2., -2.]), array([ 0., -3.]),
   array([3., 0.]), array([-3.,  0.]), array([ 1., -3.]),
   array([-1., -3.]), array([ 3., -1.]), array([-3., -1.]),
   array([-2., -3.]), array([ 3., -2.]), array([-3., -2.]),
   array([ 2., -3.]), array([-4.,  0.]), array([4., 0.]),
   array([-4., -1.]), array([ 4., -1.]), array([-3., -3.]),
   array([ 3., -3.]), array([ 4., -2.]), array([-4., -2.]),
   array([ 4., -3.]), array([-4., -3.]), array([-1., -5.]),
   array([ 1., -5.]), array([-5., -1.]), array([-5., -2.]),
   array([-5., -3.]), array([ 3., -5.]), array([-3., -5.]),
   array([-6.,  0.]), array([-6., -1.]), array([-6., -2.]),
   array([-6., -3.]), array([-5., -5.]), array([-7., -1.]),
   array([ 1., -7.]), array([-1., -7.]), array([-7., -2.]),
   array([-3., -7.]), array([-7., -3.]), array([ 3., -7.]),
   array([-7., -5.]), array([-5., -7.]), array([-1., -9.]),
   array([ 1., -9.]), array([ 3., -9.]), array([-3., -9.]),
   array([-7., -7.]), array([-5., -9.]), array([  1., -11.]),
   array([ -1., -11.]), array([ -3., -11.]), array([  3., -11.]),
   array([-7., -9.]), array([ -5., -11.]), array([ -7., -11.])],
  dtype=object)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

压抑⊿情绪 2025-01-30 08:46:58
import numpy as np
import matplotlib.pyplot as plt

arr = np.array([
    0,
    np.array([0.,  3.]),
    np.array([2., 4.]),
    np.array([-3., -1.]),
    np.array([-4.,  2.]),
    np.array([2., 0.]),
    np.array([-2., -2.])
], dtype=object)[1:]
print(repr(arr))

打印:

array([array([0., 3.]), array([2., 4.]), array([-3., -1.]),
       array([-4.,  2.]), array([2., 0.]), array([-2., -2.])],
      dtype=object)

然后,您可以使用np.stack(正如其他人在注释中所建议的那样)将arr转换为2D阵列:

arr = np.stack(arr)
print(repr(arr))

哪个打印

array([[ 0.,  3.],
       [ 2.,  4.],
       [-3., -1.],
       [-4.,  2.],
       [ 2.,  0.],
       [-2., -2.]])

:阴谋:

plt.scatter(arr[:, 0], arr[:, 1])
import numpy as np
import matplotlib.pyplot as plt

arr = np.array([
    0,
    np.array([0.,  3.]),
    np.array([2., 4.]),
    np.array([-3., -1.]),
    np.array([-4.,  2.]),
    np.array([2., 0.]),
    np.array([-2., -2.])
], dtype=object)[1:]
print(repr(arr))

prints:

array([array([0., 3.]), array([2., 4.]), array([-3., -1.]),
       array([-4.,  2.]), array([2., 0.]), array([-2., -2.])],
      dtype=object)

then you can use np.stack (as others have already suggested in the comments) to convert arr to a 2d-array:

arr = np.stack(arr)
print(repr(arr))

which prints:

array([[ 0.,  3.],
       [ 2.,  4.],
       [-3., -1.],
       [-4.,  2.],
       [ 2.,  0.],
       [-2., -2.]])

and is much easier to plot:

plt.scatter(arr[:, 0], arr[:, 1])
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文