numpy.cross

numpy.cross(a, b, axisa=- 1, axisb=- 1, axisc=- 1, axis=None)[源代码]

返回两个(数组)向量的叉积。

的叉积 ab 在里面 R^3 是垂直于两者的向量 ab . 如果 ab 是向量数组,向量由 ab 默认情况下,这些轴的尺寸可以是2或3。其中任何一个的尺寸 ab 为2,假设输入向量的第三个分量为零,并相应地计算出叉积。如果两个输入向量都有维数2,则返回交叉积的z分量。

参数
aarray_like

第一个矢量的分量。

barray_like

第二个矢量的分量。

axisa可选的

轴线 a 它定义了向量。默认情况下,最后一个轴。

axisb可选的

轴线 b 它定义了向量。默认情况下,最后一个轴。

axisc可选的

轴线 c 包含交叉积向量。如果两个输入向量都有维度2,则忽略,因为返回是标量。默认情况下,最后一个轴。

axis可选的

如果定义,则 abc 它定义了向量和叉积。重写 axisaaxisbaxisc .

返回
c恩达雷

矢量交叉积。

加薪
ValueError

当矢量的维数 a 和/或 b 不等于2或3。

参见

inner

内积

outer

外部产品。

ix_

构造索引数组。

笔记

1.9.0 新版功能.

支持输入的完全广播。

实例

矢量交叉积。

>>> x = [1, 2, 3]
>>> y = [4, 5, 6]
>>> np.cross(x, y)
array([-3,  6, -3])

一个维数为2的向量。

>>> x = [1, 2]
>>> y = [4, 5, 6]
>>> np.cross(x, y)
array([12, -6, -3])

Equivalently:

>>> x = [1, 2, 0]
>>> y = [4, 5, 6]
>>> np.cross(x, y)
array([12, -6, -3])

两个向量的维数都是2。

>>> x = [1,2]
>>> y = [4,5]
>>> np.cross(x, y)
array(-3)

多向量交叉积。注意,交叉积向量的方向由 right-hand rule .

>>> x = np.array([[1,2,3], [4,5,6]])
>>> y = np.array([[4,5,6], [1,2,3]])
>>> np.cross(x, y)
array([[-3,  6, -3],
       [ 3, -6,  3]])

的方向 c 可以使用 axisc 关键字。

>>> np.cross(x, y, axisc=0)
array([[-3,  3],
       [ 6, -6],
       [-3,  3]])

更改的矢量定义 xy 使用 axisaaxisb .

>>> x = np.array([[1,2,3], [4,5,6], [7, 8, 9]])
>>> y = np.array([[7, 8, 9], [4,5,6], [1,2,3]])
>>> np.cross(x, y)
array([[ -6,  12,  -6],
       [  0,   0,   0],
       [  6, -12,   6]])
>>> np.cross(x, y, axisa=0, axisb=0)
array([[-24,  48, -24],
       [-30,  60, -30],
       [-36,  72, -36]])