#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. мой код позволяет работать только положительным вводам от пользователя, что мне нужно сделать, чтобы код также принимал отрицательные вводы?