Самый простой способ, о котором я могу думать, заключается в следующем: просто найдите среднее значение координат массовых компонентов, взвешенных по вкладу каждого компонента.
import numpy
masses = numpy.array([[0, 0, 0, 0],
[0, 1, 0, 0],
[0, 2, 0, 0],
[1, 0, 0, 0],
[1, 1, 0, 1],
[1, 2, 0, 1],
[2, 0, 0, 0],
[2, 1, 0, 0],
[2, 2, 0, 0]])
nonZeroMasses = masses[numpy.nonzero(masses[:,3])] # Not really necessary, can just use masses because 0 mass used as weight will work just fine.
CM = numpy.average(nonZeroMasses[:,:3], axis=0, weights=nonZeroMasses[:,3])
Использовать ManyToManyField
class Student(models.Model):
name = models.CharField(...)
attendance = models.ManyToMany(Subject)
class Subject(models.Model):
subject = models.CharField(...)
Это будет так
id | student_id | subjects_id
-----------------------------------------
1 | 1 | 10
2 | 4 | 11
3 | 4 | 19
4 | 5 | 10
...
~1000
У каждого ученика будет несколько объектов ... в то время как несколько предметов могут быть у моих учеников
Obs .: Обычно я хотел бы назвать мои отношения ManyToMany именем второй таблицы во множественном числе ... так что предметы
Использование:
all_students = Student.objects.all()
all_subjects = Subject.objects.all()
all_subjects_from_student = Student.objects.get(id=1).attendance.all()
Как я могу отметить посещаемость конкретного ученика для конкретного предмета?
particular_student = Student.objects.get(id=1) # When 1 is the student ID particular_subject_of_student = particular_student.filter(id=1) # When 1 is the subject ID
https://docs.djangoproject.com/en/2.0/topics/db/ Примеры / many_to_many /
EDIT Вы можете сделать это тоже без использования ManyToMany, если вам нужно какое-либо новое поле в Attendance
class Student(models.Model): name = models.CharField(...) class Subject(models.Model): subject = models.CharField(...) class Attendance(Student, Subject): att = models.IntegerField() subject = models.ForeignKey(Subject) student = models.ForeignKey(Student) ... # You can add more fields if you like
. Возьмем один такой вопрос, как ваш: django доступ к сырым многим во многие созданные поля таблицы