Python 在Django中存储矩阵

Python 在Django中存储矩阵,python,django,Python,Django,我有以下矩阵: item_1 item_2 item_3 item_1 1 0 0 item_2 0 2 0 item_3 0 0 3 将此矩阵存储到django中的最佳方法是什么,以便将来我可以检索整个列(能够看到每行的ID),并使用它在视图中执行一些计算 Obs:这个矩阵将有数千列和数千行。可能最好制作一个包含3个字段的单元模型;列、行、值 class Cell(

我有以下矩阵:

        item_1  item_2  item_3
item_1       1       0       0
item_2       0       2       0
item_3       0       0       3
将此矩阵存储到django中的最佳方法是什么,以便将来我可以检索整个列(能够看到每行的ID),并使用它在视图中执行一些计算


Obs:这个矩阵将有数千列和数千行。

可能最好制作一个包含3个字段的单元模型;列、行、值

class Cell(models.Model):
    col = models.CharField(max_length=50, index=True)
    row = models.CharField(max_length=50, index=True)
    value = models.IntegerField()
    
    class Meta:
        unique_together = ('col', 'row')
有了这个,你可以做简单的计算

col_sum = Cell.objects.filter(col='Abc').aggregate(sum=Sum('value'))['sum']
row_sum = Cell.objects.filter(row='Zyx').aggregate(sum=Sum('value'))['sum']

你能使用SQL数据库吗?如果您正在寻找一个仅用于存储和检索目的的轻量级应用程序,sqlite是一个不错的选择。您还可以将矩阵存储在pickle
.pkl
或numpy文件
.npy
中并检索它later@Alireza如果我使用pickle文件,那么每次需要检索时,我是否都必须加载整个数据?这不会有性能问题吗?我不确定Django管道和加载过程。也许可以指定某种方式将变量保留在缓存中。请查一下。对于flask,我很确定每个线程只加载一次。您能解释一下元类的作用吗?有没有一种方法可以将我当前的数据上传到这个数据库?Meta为您的模型提供了更多的元数据,Django可以使用这些元数据正确地构建表。这里我使用它来确保行和列的组合是唯一的。有关更多信息,请参阅。关于上载,如果选择数据库系统,Django将确保数据正确存储。将数据迁移到数据库需要一些脚本,但这是可能的。