Ответ принят. У меня была связанная, но немного другая ситуация, когда мне приходилось заполнять форму, но только внутри групп. Если у кого-то есть такая же потребность, знайте, что fillna работает над объектом DataFrameGroupBy.
>>> example = pd.DataFrame({'number':[0,1,2,nan,4,nan,6,7,8,9],'name':list('aaabbbcccc')})
>>> example
name number
0 a 0.0
1 a 1.0
2 a 2.0
3 b NaN
4 b 4.0
5 b NaN
6 c 6.0
7 c 7.0
8 c 8.0
9 c 9.0
>>> example.groupby('name')['number'].fillna(method='ffill') # fill in row 5 but not row 3
0 0.0
1 1.0
2 2.0
3 NaN
4 4.0
5 4.0
6 6.0
7 7.0
8 8.0
9 9.0
Name: number, dtype: float64
Да, вам нужно написать класс или использовать библиотеку, такую как JScience
Если вы хотите сделать вектор в 2d-пространстве, не могли бы вы просто пойти с простым Point2D(x,y)
и позволить длине вашего вектора определить величину?
Так, чтобы Point2D a = new Point2D(1,1);
величина 1,4 и направление NE. И Point2D b = new Point2D(2,2);
имеет одно и то же направление, но значение 2,8 ...
Дополнение было бы просто: Point2D c = new Point2D(a.x + b.x, a.y + b.y);
В 3d-пространстве я бы создал свой собственный класс, или совершенно другая структура данных в зависимости от вашей фактической проблемы.
Изменить: Надеюсь, он нашел решение за последние 3 года ..
Да, вам нужно будет написать библиотеку (или использовать стороннюю библиотеку) для выполнения векторной арифметики.
Я знаю, что это старо, но, возможно, кто-то найдет это полезным:
Существует также Apache Commons Math , который имеет класс Vector2D .
Я не думаю, что есть встроенный способ добавления векторов, однако я нашел серию , описывающую, как это можно сделать.
Java3D имеет различные формы векторных классов (Vector3d, Vector3f, Vector4d и т. д.). Java3D, конечно, несколько рискованно в наши дни, поскольку, похоже, он настроен на отказ.