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()

资讯来源:由0x资讯编译自APPDIVIDEND,版权归作者Ankit Lathiya所有,未经许可,不得转载
你可能还喜欢