在Python中使用NumPy获取数组与字母矢量的外积
在这篇文章中,让我们看看如何在Python中得到一个数组与一个字母矢量的外积。
numpy.outer() 方法
在Python中,numpy .outer()方法用于获得一个数组与一个元素矢量的外积。矩阵是线性代数中两个坐标向量的外积。尺寸为n和m的两个向量的外积是m*n矩阵。一般来说,两个张量(多维数组)的外积是一个张量。张量代数是由张量积定义的,通常被称为张量的外积。因此,换一种说法,外积是第一个向量的所有元素与第二个向量的所有元素的乘积。
示例:
输入:
a = [a0, a1, ..., aM] and b = [b0, b1, ..., bN]
输出:
[[a0*b0 a0*b1 ... a0*bN ]
[a1*b0 a1*b1 ... a0*bN ]
[ ... ... ... ]
[aM*b0 aM*bN ]]
语法: numpy.outer(a, b, out=None)
参数:
- a: (M,) array_like对象。初始输入向量。如果输入不是一维的,就会被压扁。
- b: (N,) array_like对象。输入的第二个向量。如果输入不是一维的,就会被压扁。
- out: (M, N) ndarray, 可选值。结果被保存的位置
结果是out[i, j] = a[i] * b[j]
示例 1
这里,我们将使用np.array()方法创建两个NumPy向量,一个是字母向量,另一个是数字向量。.ndim属性用于了解数组的尺寸,.shape属性用于查找向量的形状。np.outer()方法用于查找创建的向量的外积。
# importing packages
import numpy as np
# creating arrays using np.array() method
# vector of letters
arr1 = np.array(['g', 'e', 'e', 'k'], dtype=object)
# # integer array
arr2 = np.array([1, 2, 3, 4])
#
# # Display the arrays
print("Array of letters is :", arr1)
print("Array of numbers is :", arr2)
#
# # Checking the dimensions
print("Array one dimension :", arr1.ndim)
print("Array two dimension", arr2.ndim)
#
# # Checking the shape of the arrays
print("Shape of array 1 is : ", arr1.shape)
print("Shape of array 2 is : ", arr2.shape)
# # outer product of the vectors
print("Outer product : \n", np.outer(arr1, arr2))
输出:
Array of letters is : ['g' 'e' 'e' 'k']
Array of numbers is : [1 2 3 4]
Array one dimension : 1
Array two dimension 1
Shape of array 1 is : (4,)
Shape of array 2 is : (4,)
Outer product :
[['g' 'gg' 'ggg' 'gggg']
['e' 'ee' 'eee' 'eeee']
['e' 'ee' 'eee' 'eeee']
['k' 'kk' 'kkk' 'kkkk']]
示例 2
在这个例子中,我们正在创建一个整数数组来寻找创建的向量的外积。现在如果我们检查第一行的输出,它是[g1, g2, g3, g4],字母向量中的其他每个元素也是如此。
# importing packages
import numpy as np
# creating arrays using np.array() method
# vector of letters
arr1 = np.array([5, 6, 7, 8], dtype=object)
# # integer array
arr2 = np.array([1, 2, 3, 4])
#
# # Display the arrays
print("Array of letters is :", arr1)
print("Array of numbers is :", arr2)
#
# # Checking the dimensions
print("Array one dimension :", arr1.ndim)
print("Array two dimension", arr2.ndim)
#
# # Checking the shape of the arrays
print("Shape of array 1 is : ", arr1.shape)
print("Shape of array 2 is : ", arr2.shape)
# # outer product of the vectors
print("Outer product : \n", np.outer(arr1, arr2))
输出:
Array of letters is : [5 6 7 8]
Array of numbers is : [1 2 3 4]
Array one dimension : 1
Array two dimension 1
Shape of array 1 is : (4,)
Shape of array 2 is : (4,)
Outer product :
[[5 10 15 20]
[6 12 18 24]
[7 14 21 28]
[8 16 24 32]]