使用 Django 进行数据挖掘时出现问题

发布于 2024-10-21 06:23:34 字数 1662 浏览 8 评论 0原文

我已经建立了一个 Django 项目,在其中创建随机点。这些随机点存储在数据库(sqlite)中(我可以通过管理网站查看它们并更改值,所以这有效)。 如果我编写一个脚本,我可以访问这些点并将它们打印在图中。请参阅下面的代码。

但是,如果我想挖掘这些点来对它们进行排序或仅绘制数据集的选择,我似乎会遇到麻烦。如果我读出这些值,它们就不再连接,并且对 x 进行排序会混淆点集。 有没有办法将数据集排序为最小值(在本例中为 X)并对值进行排序并打印该集? (保持点的所有 x、y、z 和名称值不变?)(参见下面的答案,point in Point3D.objects.all().order_by('x'):

如果我现在想要 x 的值介于 x = 12 和 x = 30 之间?我如何添加这个额外的过滤器?

我的代码如下: models.py:

class Point3D(models.Model):
name = models.CharField(max_length = 10)
x = models.DecimalField(max_digits=5, decimal_places=2)
y = models.DecimalField(max_digits=5, decimal_places=2)
z = models.DecimalField(max_digits=5, decimal_places=2)

生成点:

from books.models import Point3D

def points():
    for i in range(20):
        x = random.randint(0,100)
        y = random.randint(0,100)
        z = random.randint(0,100)

        p = Point3D(name = x , x = x ,y = y,z = z)
#        print 'test'
        p.save()
#    

points()

在views.py中:

def ThreeGraphs(request):
    fig = Figure()
    fig.suptitle('2D-punten')
    ax = fig.add_subplot(111)

    for point in Point3D.objects.all():
        print point
        name = int(point.name)
        xs = int(point.x)
        ys = int(point.y)
        zs = int(point.z)
        print (xs, ys, zs)
        ax.plot(xs, ys, 'bo' )

    HttpResponse(mimetype="image/png")
    FigureCanvas(fig)
    fig.savefig('template/images/testing.png')
    picture = "testing.png"
    return render_to_response('Test.html', {'picture': picture}, RequestContext(request))

希望有人知道如何解决我的麻烦。

多谢! 蒂杰尔

I've set up a Django project in which i create random points. These random points are stored in a database(sqlite) (i can see them via the admin website and change the values, so this works).
If i the write a script i can access the points and print them in a plot. See code below.

But if I then want to mine these points to sort them or only plot a selection of the dataset i seem to have trouble. If i readout the values they are not connected anymore and sorting x would mix up the point set.
Is there a way to sort the data set to a minimum value of in this case X and the sort the values and print the set? (keep all x, y, z and name value of the point intact?) (see answer below, point in Point3D.objects.all().order_by('x'):)

If i now want to to have the values of x between x = 12 and x = 30? how can i add this extra filter?

My code is as follows:
models.py:

class Point3D(models.Model):
name = models.CharField(max_length = 10)
x = models.DecimalField(max_digits=5, decimal_places=2)
y = models.DecimalField(max_digits=5, decimal_places=2)
z = models.DecimalField(max_digits=5, decimal_places=2)

generate the points:

from books.models import Point3D

def points():
    for i in range(20):
        x = random.randint(0,100)
        y = random.randint(0,100)
        z = random.randint(0,100)

        p = Point3D(name = x , x = x ,y = y,z = z)
#        print 'test'
        p.save()
#    

points()

in views.py:

def ThreeGraphs(request):
    fig = Figure()
    fig.suptitle('2D-punten')
    ax = fig.add_subplot(111)

    for point in Point3D.objects.all():
        print point
        name = int(point.name)
        xs = int(point.x)
        ys = int(point.y)
        zs = int(point.z)
        print (xs, ys, zs)
        ax.plot(xs, ys, 'bo' )

    HttpResponse(mimetype="image/png")
    FigureCanvas(fig)
    fig.savefig('template/images/testing.png')
    picture = "testing.png"
    return render_to_response('Test.html', {'picture': picture}, RequestContext(request))

Hope anyone knows how to solve my trouble.

Thanks a lot!
Tijl

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

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

发布评论

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

评论(1

梦罢 2024-10-28 06:23:34

您需要这样做:

    for point in Point3D.objects.all().order_by('x'):

这将按“x”字段排序返回点。您可以使用 order_by('-x') 来反转排序顺序。

You need to to this:

    for point in Point3D.objects.all().order_by('x'):

This will return the points in sorted order by the 'x' field. You can say order_by('-x') to reverse the sort order.

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