Python中10维以上向量的叉积

Python中10维以上向量的叉积,python,numpy,Python,Numpy,我目前有两个向量的形状(300L,)每个。然而,当我试图通过numpy交叉函数计算它们之间的叉积时,它抛出了以下错误: z=np.cross(x,y) C:\Users\SMG059\AppData\Local\Continuum\Anaconda\lib\site packages\numpy\core\numeric.pyc交叉排列(a、b、axisa、axisb、axisc、axis) 1525“(尺寸必须为2或3)” 1526如果a.形状[-1]不在(2,3)中或b.形状[-1]不在(2

我目前有两个向量的形状(300L,)每个。然而,当我试图通过numpy交叉函数计算它们之间的叉积时,它抛出了以下错误:
z=np.cross(x,y)

C:\Users\SMG059\AppData\Local\Continuum\Anaconda\lib\site packages\numpy\core\numeric.pyc交叉排列(a、b、axisa、axisb、axisc、axis) 1525“(尺寸必须为2或3)” 1526如果a.形状[-1]不在(2,3)中或b.形状[-1]不在(2,3)中: ->1527提升值错误(msg) 1528 1529#创建输出数组

ValueError:叉积的维度不兼容 (尺寸必须为2或3)


有人能告诉我如何计算大向量的叉积吗?

根据你关于想要知道数组之间的角度的评论,我想你确实想要点积。例如,这里有一个函数,它将给出两个向量之间的角度

def angle(vector1, vector2):
    # cos(theta) = v1 dot v2 / ||v1|| * ||v2||
    import numpy
    numerator = numpy.dot(vector1, vector2)
    denominator = numpy.linalg.norm(vector1) * numpy.linalg.norm(vector2)
    x = numerator / denominator if denominator else 0
    return numpy.arccos(x)

根据你关于想要知道数组之间的角度的评论,我认为你确实想要点积。例如,这里有一个函数,它将给出两个向量之间的角度

def angle(vector1, vector2):
    # cos(theta) = v1 dot v2 / ||v1|| * ||v2||
    import numpy
    numerator = numpy.dot(vector1, vector2)
    denominator = numpy.linalg.norm(vector1) * numpy.linalg.norm(vector2)
    x = numerator / denominator if denominator else 0
    return numpy.arccos(x)

向量叉积仅在三维中定义。你是说你有两个数组,每个数组有300个三维向量吗?我想你要找的是矩阵的行列式。使用行列式计算两个3长度向量的叉积。对吗?同样值得注意的是:叉积只存在于3维和7维向量。我想确定两个阵列之间的角度。有办法吗?这就是我需要交叉积的原因。那么,你确定这不是你想要的吗
np.dot
将处理任意数量的维度。向量叉积仅在三维中定义。你是说你有两个数组,每个数组有300个三维向量吗?我想你要找的是矩阵的行列式。使用行列式计算两个3长度向量的叉积。对吗?同样值得注意的是:叉积只存在于3维和7维向量。我想确定两个阵列之间的角度。有办法吗?这就是我需要交叉积的原因。那么,你确定这不是你想要的吗
np.dot
可以处理任意数量的维度。