如何在NumPy中获得一个向量的大小
线性代数的基本特征是向量,这些是既有方向又有大小的对象。在Python中,NumPy数组可以用来描述一个矢量。
主要有两种获得矢量大小的方法:
- 通过定义一个显式函数,根据以下数学公式计算一个给定向量的大小
if V is vector such that, V = (a, b, c)
then ||V|| = ?(a*a + b*b + c*c)
下面是一些按照上述方法计算向量大小的程序。
# program to compute magnitude of a vector
# importing required libraries
import numpy
import math
# function definition to compute magnitude o f the vector
def magnitude(vector):
return math.sqrt(sum(pow(element, 2) for element in vector))
# displaying the original vector
v = numpy.array([0, 1, 2, 3, 4])
print('Vector:', v)
# computing and displaying the magnitude of the vector
print('Magnitude of the Vector:', magnitude(v))
输出:
Vector: [0 1 2 3 4]
Magnitude of the Vector: 5.477225575051661
下面是另一个采用相同方法的例子。
# program to compute magnitude of a vector
# importing required libraries
import numpy
import math
# function definition to compute magnitude o f the vector
def magnitude(vector):
return math.sqrt(sum(pow(element, 2) for element in vector))
# computing and displaying the magnitude of the vector
print('Magnitude of the Vector:', magnitude(numpy.array([1, 2, 3])))
输出:
Magnitude of the Vector: 3.7416573867739413
- 通过使用NumPy库的linalg模块中的norm()方法。NumPy的线性代数模块提供了各种方法来对任何NumPy数组应用线性代数。下面是一些使用numpy.linalg.norm()来计算向量大小的程序。
# program to compute magnitude of a vector
# importing required libraries
import numpy
# displaying the original vector
v = numpy.array([1, 2, 3])
print('Vector:', v)
# computing and displaying the magnitude of
# the vector using norm() method
print('Magnitude of the Vector:', numpy.linalg.norm(v))
输出:
Vector: [1 2 3]
Magnitude of the Vector: 3.7416573867739413
一个额外的参数ord可以用来计算一个向量的n次方规范()。
# program to compute the nth order of the
# magnitude of a vector
# importing required libraries
import numpy
# displaying the original vector
v = numpy.array([0, 1, 2, 3, 4])
print('Vector:', v)
# computing and displaying the magnitude of the vector
print('Magnitude of the Vector:', numpy.linalg.norm(v))
# Computing the nth order of the magnitude of vector
print('ord is 0: ', numpy.linalg.norm(v, ord = 0))
print('ord is 1: ', numpy.linalg.norm(v, ord = 1))
print('ord is 2: ', numpy.linalg.norm(v, ord = 2))
print('ord is 3: ', numpy.linalg.norm(v, ord = 3))
print('ord is 4: ', numpy.linalg.norm(v, ord = 4))
输出:
Vector: [0 1 2 3 4]
Magnitude of the Vector: 5.477225575051661
ord is 0: 4.0
ord is 1: 10.0
ord is 2: 5.477225575051661
ord is 3: 4.641588833612778
ord is 4: 4.337613136533361