Python中的Numpy inner()方法
Numpy inner()方法用于计算两个给定输入数组的内积。对于一维数组,将返回向量的普通内积(无复共轭),而在维数较大的情况下,将返回最后一个轴上的和积。
句法
numpy.inner(arr1, arr2)
参量
inner()函数最多接受两个参数:
arr1:array_like,第一个输入数组
arr2:array_like,第二个输入数组
如果arr1和arr2是非标量,则它们的最后一个尺寸必须匹配。
返回值
出:ndarray
该方法返回一个n维数组,其中包含两个数组arr1和arr2的内积。可以使用以下公式计算输出数组的形状:
out.shape = arr1.shape[:-1] + arr2.shape[:-1]
引发:ValueError
如果arr1和arr2的最后一个维度彼此不匹配,则会引发ValueError。
编程范例
程序以显示numpy.inner()方法在1D数组/矢量情况下的工作
# importing the numpy module import numpy as np # first 1-D array arr1 arr1 = np.array([2, 4, 6, 8]) # second 1-D array arr2 arr2 = np.array([1, 3, 5, 7]) # calculating inner product res = np.inner(arr1, arr2) print("Resultant array is : ", res) # first 1-D array arr1 arr3 = np.array([8+2j]) # second 1-D array arr2 arr4 = np.array([1+6j]) # calculating inner product' out = np.inner(arr3, arr4) print("Output array is : ", out)
输出量
Resultant array is : 100 Output array is : (-4+50j)
说明
在上面的代码中,我们采用了两个名为arr1和arr2的一维输入数组,然后通过显示两个数组的内积来显示输出。我们得到的结果是一个标量,即100。
计算结果可能显示为:
2 * 1 + 4 * 3 + 6 * 5 + 8 * 7 = 100
另外,为了显示复数情况下的计算,我们采用了另外两个向量arr3和arr4,然后计算了其内积,所得结果为-4 + 50j。结果计算可以显示为:
8 * 1 + 8 * 6j + 2j * 1 + 2j * 6j
= 8 + 48j + 2j -12
= -4 + 50j
在多维数组的情况下显示numpy.inner()方法的程序
# importing the numpy module import numpy as np # first 2D array arr1 arr1 = np.array([[3, 2], [0, 4]]) print("first array is :") print(arr1) # second 2D array arr1 arr2 = np.array([[1, 2], [3, 4]]) print("second array is :") print(arr2) # calculating inner product res = np.inner(arr1, arr2) print("Resultant array is :") print(res)
输出量
first array is : [[3 2] [0 4]] second array is : [[1 2] [3 4]] Resultant array is : [[ 7 17] [ 8 16]]
说明
在上面的程序中,我们采用了两个不同的二维数组,分别名为arr1和另一个名为arr2。然后,我们通过显示两个数组的内积来显示输出。所得数组还将具有(2,2)的形状。
上面示例的内积可以计算为:
3 * 1 + 2 * 2、3 * 3 + 2 * 4
0 * 1 + 4 * 2,0 * 3 + 4 * 4
最后,Numpy.inner()函数示例结束了。
也可以看看
numpy matmul()
numpy convolve()
numpy related()
numpy polyfit()
numpy linalg det()