Векторы в python

#python-3.x

#python-3.x

Вопрос:

Привет, я только начал использовать python и кодирование в целом. Это последний вопрос моего задания, и я, честно говоря, понятия не имею, как даже начать этот вопрос. Мне нужно написать программу для выполнения базовых векторных вычислений в 3 измерениях: сложение, скалярное произведение и нормализация.

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

 The expected result is:
Enter vector A:
1 3 2
Enter vector B:
2 3 0
A B = [3, 6, 2]
A.B = 11
|A| = 3.74
|B| = 3.61
  

Ответ №1:

  • Использование numpy :

     import numpy as np
    
    A = np.array([1,3,2])
    B = np.array([2,3,0])
    
    # sum
    print(A B) # -> array([3, 6, 2])
    
    # dot product
    print(np.dot(A)) # -> 11
    
    #normalization
    print(np.linalg.norm(A)) # -> 3.741...
    print(np.linalg.norm(B)) # -> 3.605...
      
  • Без numpy :

     A = [1,3,2]
    B = [2,3,0]
    
    # sum
    print([i j for i,j in zip(A,B)])
    
    # dot product
    print(sum(i*j for i, j in zip(A,B)))
    
    #normalization
    print(sum(i**2 for i in A)**(0.5))
    print(sum(i**2 for i in B)**(0.5))
      

Комментарии:

1. Есть ли способ сделать это без использования numpy?

2. Конечно. Обратите внимание, что numpy с точки зрения дизайна это обеспечивает лучшую производительность с точки зрения памяти и скорости.

3. последний вопрос, когда я использую отрицательные входные данные, это не работает, как мне это исправить

4. в чем проблема?

5. мой код позволяет работать только положительным вводам от пользователя, что мне нужно сделать, чтобы код также принимал отрицательные вводы?