Java Добавление двух векторных функций [duplicate]

Ответ принят. У меня была связанная, но немного другая ситуация, когда мне приходилось заполнять форму, но только внутри групп. Если у кого-то есть такая же потребность, знайте, что 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
21
задан Jenny 27 October 2009 в 18:40
поделиться

6 ответов

Да, вам нужно написать класс или использовать библиотеку, такую ​​как JScience

13
ответ дан dfa 22 August 2018 в 00:18
поделиться
  • 1
    +1 - Я никогда не видел эту библиотеку, выглядит интересно. – James Black 27 October 2009 в 19:10
  • 2
    Спасибо за ссылку, JScience действительно отлично смотрится! – Jenny 27 October 2009 в 20:21
  • 3
    Хотя в ретроспективе это меня смущает. Он делает то, что я никогда раньше не видел. Думаю, я задам новый вопрос об этом ... – Jenny 27 October 2009 в 20:34
  • 4
    Если посмотреть на сайт JScience и репозиторий CVS, похоже, за последние 2 года ничего не изменилось. Не совсем хороший знак ... – Stephen C 28 October 2009 в 00:10

Если вы хотите сделать вектор в 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 года ..

3
ответ дан devrys 22 August 2018 в 00:18
поделиться
  • 1
    Это одно решение проблемы OP, но не ответ на вопрос OP. – gh. 25 September 2012 в 11:43
  • 2
    @gh. Я не знаю, является ли это черным и белым ... это, безусловно, явно отвечает на вторую часть вопроса OP. «Есть ли способ сделать манипуляции с Vector (в частности, добавление) в Java? & Quot; – Benjamin R 12 October 2014 в 02:49

Да, вам нужно будет написать библиотеку (или использовать стороннюю библиотеку) для выполнения векторной арифметики.

1
ответ дан erickson 22 August 2018 в 00:18
поделиться

Я знаю, что это старо, но, возможно, кто-то найдет это полезным:

Существует также Apache Commons Math , который имеет класс Vector2D .

1
ответ дан hoijui 22 August 2018 в 00:18
поделиться

Я не думаю, что есть встроенный способ добавления векторов, однако я нашел серию , описывающую, как это можно сделать.

3
ответ дан luvieere 22 August 2018 в 00:18
поделиться

Java3D имеет различные формы векторных классов (Vector3d, Vector3f, Vector4d и т. д.). Java3D, конечно, несколько рискованно в наши дни, поскольку, похоже, он настроен на отказ.

2
ответ дан M1EK 22 August 2018 в 00:18
поделиться
  • 1
    Java3D определенно настроен для отказа. Тем не менее, это по-прежнему хороший ответ, потому что вы можете легко просто взять «vecmath.jar». от Java3D и сами использовать векторные классы. – jprete 27 October 2009 в 18:51
Другие вопросы по тегам:

Похожие вопросы: